我有一个数组字段,我希望确保在满足条件时它至少有一个元素:
genre:Joi.array().includes(data.genres).when('field'{is:'fieldValue',then:Joi.required()})
如果我更改了'那么'与Joi.required()。min(1)的字段,它抱怨。
我可以和Joi一起做吗?
答案 0 :(得分:4)
你没有提到错误信息是什么,但是测试你的代码我认为你得到了:
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()})