我想使用类似的规则,但我有一些问题需要填写"是"关于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()
}
}
答案 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()
}
}