Joi Validation-验证数组,即使只有一个元素与架构匹配

问题描述 投票:1回答:1

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

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}]

在数组的所有元素上方均未通过验证,因此数组验证也将失败。

谢谢

javascript node.js validation joi
1个回答
0
投票

我能够通过使用stripUnknown选项解决我的问题。

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

上面的代码剥离了无效的数组元素,如果在架构需要时没有元素通过验证,则抛出错误。

© www.soinside.com 2019 - 2024. All rights reserved.