我有一个数组字段,我想确保它在满足条件时至少有一个元素:
genre:Joi.array().includes(data.genres).when('field'{is:'fieldValue',then:Joi.required()})
如果我用 Joi.required().min(1) 更改了“then”字段,它会抱怨。
我可以用 Joi 做这个吗?
您没有提到错误消息是什么,但是我想您测试了您的代码:
TypeError: Object [object Object] 没有方法'min'
发生此错误是因为min()
是数组类型的函数。在then:
您创建一个新的验证对象的部分中,Joi 不知道您期望那里有一个数组。所以你需要指定它:
then: Joi.array().min(1).required()
完整的验证码是:
genre: Joi.array().includes(data.genres).when('field', {is: 'fieldValue', then: Joi.array().min(1).required()})