【问题标题】:Joi Validation || In an array of object, at least one object should contain a particular value of a keyJoi 验证 ||在一个对象数组中,至少一个对象应该包含一个键的特定值
【发布时间】:2021-04-17 21:03:54
【问题描述】:

我需要以下对象数组的架构:

option = [
    {
        answer: '',
        isTrue: false
    },
    {
        answer: '',
        isTrue: true
    },
]

到目前为止,我写了以下架构:

Joi.array().items(Joi.object({
   answer: Joi.string().required(),
   isTrue: Joi.boolean().required()
}).unknown()).min(2).required()

问题:我需要验证至少一个对象应该具有“isTrue”键的值为“true”(布尔值)

【问题讨论】:

    标签: javascript validation schema joi


    【解决方案1】:
     let optionsValidation = Joi.object().keys({
          answer: Joi.string().required(),
          isTrue: Joi.boolean().required()
        });
        
        //replace with your field name
        options: Joi.array()
              .items(optionsValidation)
              .has(
                Joi.object().keys({
                  answer: Joi.string().required(),
                  isTrue: Joi.boolean().invalid(false).required();
                }),
              )
    

    也许您需要更改 smth 以使其适应您的代码,但这应该可以。它确保数组上的至少一个对象应该有答案并且应该是正确的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-20
      • 2021-12-27
      • 2018-06-21
      • 1970-01-01
      • 2016-08-05
      • 2019-10-01
      • 1970-01-01
      • 2021-08-24
      相关资源
      最近更新 更多