验证数组何时包含特定值
Validate when array contains specific value
我想使用类似的规则,但我在为 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()
}
}
您可以通过列出所有允许的类型来使用 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()
}
}
我想使用类似的规则,但我在为 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()
}
}
您可以通过列出所有允许的类型来使用 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()
}
}