joi validation:有条件地设置最小数组长度

时间:2014-09-09 08:20:33

标签: node.js hapijs

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

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

如果我更改了'那么'与Joi.required()。min(1)的字段,它抱怨。

我可以和Joi一起做吗?

1 个答案:

答案 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()})