我正在使用Joi验证我的模式。我想检查该架构中的任何键是否具有特定值。
例如,我有这个架构 parking
parking: Joi.object({
twoWheelers: Joi.boolean(),
fourWheelers: Joi.boolean(),
handicapped: Joi.boolean(),
})
我只希望其中任何一个键的值都为 true 才有效。因此,如果用户为所有属性提供 false ,则它应该无效。
Joi具有此when属性,我可以附加该属性以基于提供的值添加验证,但是我不确定是否可以在我的情况下使用它。
答案 0 :(得分:0)
正在寻找object.or(peers)
吗?
定义键之间的关系,其中需要一个对等(并且允许多个对等),其中:
peers
-必须至少显示一个键名。options
-可选设置:
separator
-覆盖默认值。层次分隔符。设置为false
会将key
视为文字值。const schema = Joi.object({
parking: Joi.object({
twoWheelers: Joi.boolean(),
fourWheelers: Joi.boolean(),
handicapped: Joi.boolean(),
}).or('twoWheelers', 'fourWheelers', 'handicapped').invalid(false)
// or without invalid
//.or('twoWheelers', 'fourWheelers', 'handicapped')
smackMyPinchUp: Joi.any()
});