我正在使用节点模块 Joi 进行一些验证,但在使用 .or() 方法时遇到了问题。
在他们的文档中,他们将用途指定为:
var schema = Joi.object().keys({
a: Joi.any(),
b: Joi.any()
}).or('a', 'b');
但是我正在尝试验证一个对象,并且我想使用 .or() 来检查嵌套在不同属性下的属性,明白了吗?就像是:
var schema = Joi.object().keys({
body:{
device:{
smthelse: Joi.any(),
ua: Joi.string()
}
},
headers:{
'user-agent': Joi.string()
}).or('body.device.ua', 'headers.user-agent');
但我似乎无法让它工作。有谁知道我是否遗漏了什么?对于嵌套对象,用户 .or() 是这样吗?
谢谢!