我需要验证对象数组。每个对象可以是:
{
id; "some-id"
}
或
{
"mobile_number": "some-string"
}
我有以下代码:
const Joi = require('Joi')
const idSchema = Joi.object().keys({
user_id: Joi.string().required(),
});
const mobileSchema = Joi.object().keys({
mobile_number: Joi.string().required().error(),
});
const schema = Joi.object()
.keys({
members: Joi.array()
.items(idSchema, mobileSchema)
.required()
})
.required()
console.log(Joi.validate({
members: [{ mobile_number: null }],
}, schema))
我希望它显示出mobile_number是必需的。它失败并显示:
{ error:
{ ValidationError: child "members" fails because ["members" at position 0 does not match any of the allowed types]```
所有项目都不匹配架构的错误将覆盖基本错误。
可以解决这个问题吗?
注意:我使用的是Joi 10.6,升级到新版本时受到限制