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

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

如果我用Joi.required()。min(1)更改了'then'字段,它会提示。

我可以和Joi一起做吗?

最佳答案

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



发生此错误的原因是 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()})

关于node.js - joi验证: Set minimum array length conditionally,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25739791/

10-13 09:44