joivalidation:有条件地设置最小数组长度
我有一个数组字段,我想确保它满足条件时至less有一个元素:
genre:Joi.array().includes(data.genres).when('field'{is:'fieldValue',then:Joi.required()})
如果我用Joi.required()。min(1)改变了'then'字段,它就会抱怨。
我可以跟Joi做这个吗?
你没有提到错误信息是什么,但是testing你的代码我想你得到了:
TypeError:Object [object Object]没有方法'min'
发生此错误是因为min()
是数组types的函数。 在then:
部分你创build一个新的validation对象,Joi不知道你期望在那里有一个数组。 所以你需要指定它:
then: Joi.array().min(1).required()
完整的validation码是:
genre: Joi.array().includes(data.genres).when('field', {is: 'fieldValue', then: Joi.array().min(1).required()})