Join验证-即使只有一个元素与模式匹配,也要验证数组



我想验证一个对象数组。即使只有一个数组元素与模式匹配,joi也应该验证整个数组,并且只有当所有元素都与模式不匹配时才拒绝对于exmaple:架构:

Joi.object({
data: Joi.array()
.items(Joi.object({a: Joi.number(), b: Joi.string()})) 
})

这必须通过joi验证:[{a:23, b: "Ddd"}, {a:23, b: 34}]

只有一个数组元素验证应该足以通过数组验证。

不得通过验证:

[{a:23, b: 23}, {a:23, b: 34}]

数组的所有元素都无法通过验证,因此数组验证也会失败。

感谢

我可以通过使用stripUnknown选项来解决我的问题。

Joi.object({
data: Joi.array()
.items(Joi.object({a: Joi.number(), b: Joi.string()}))
.options({ stripUnknown: { arrays: true } })
})

上面的代码剥离了无效的数组元素,若并没有元素通过验证(若架构是必需的(,则抛出错误。

相关内容

  • 没有找到相关文章

最新更新