【发布时间】:2014-11-02 14:09:02
【问题描述】:
我有一个数组字段,我想确保它在满足条件时至少有一个元素:
genre:Joi.array().includes(data.genres).when('field'{is:'fieldValue',then:Joi.required()})
如果我用 Joi.required().min(1) 更改了“then”字段,它会抱怨。
我可以用 Joi 做这个吗?
【问题讨论】:
我有一个数组字段,我想确保它在满足条件时至少有一个元素:
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()})
【讨论】: