8

我有一个数组字段,我想确保它在满足条件时至少有一个元素:

genre:Joi.array().includes(data.genres).when('field'{is:'fieldValue',then:Joi.required()})

如果我用 Joi.required().min(1) 更改了“then”字段,它会抱怨。

我可以用 Joi 做这个吗?

4

1 回答 1

26

您没有提到错误消息是什么,但是我想您测试了您的代码:

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()})
于 2014-09-09T10:13:26.550 回答