Joi数组验证将覆盖潜在的错误。有办法克服吗?

时间:2019-11-04 05:21:57

标签: node.js joi

我需要验证对象数组。每个对象可以是:

{
  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,升级到新版本时受到限制

0 个答案:

没有答案