【问题标题】:Validate when array contains specific value验证数组何时包含特定值
【发布时间】:2018-04-06 07:31:12
【问题描述】:

我想使用类似的规则,但在为 Joi 验证库上的 when 条件填充“is”规则时遇到了一些问题。

let schema = {
    field1: Joi.array().items(Joi.string().valid('v1', 'v2')),
    field2: Joi.when("field1", {
        is: // if field1 contains at least 'v1',
        then: Joi.object().keys(...),
        otherwise: Joi.forbidden()
    }
}

【问题讨论】:

    标签: joi


    【解决方案1】:

    您可以通过列出所有允许的类型来使用array.items。如果给定类型为.required(),则数组中必须有匹配项: joi API reference

    let schema = {
        field1: Joi.array().items(Joi.string().valid('v1', 'v2')),
        field2: Joi.when("field1", {
            is: Joi.array().items(Joi.string().valid('v1').required(), Joi.string().valid('v2'))
            then: Joi.object().keys(...),
            otherwise: Joi.forbidden()
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2018-01-14
      • 1970-01-01
      • 1970-01-01
      • 2021-11-26
      • 1970-01-01
      • 1970-01-01
      • 2017-05-01
      • 2015-06-24
      • 2014-12-29
      相关资源
      最近更新 更多