当数组包含特定值时验证

时间:2018-04-05 18:35:31

标签: joi

我想使用类似的规则,但我有一些问题需要填写"是"关于Joi验证库的when条件的规则。

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()
    }
}

1 个答案:

答案 0 :(得分: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()
    }
}