【发布时间】:2019-05-29 04:29:43
【问题描述】:
尝试如下设置嵌套模式。如果存在 aa.a 时存在 bb.c,我希望能够拒绝模式。
我试过没有和 xor 一样
{
Joi.object().keys({
aa: Joi.object().keys({
a: Joi.string(),
b: Joi.string()
}).unknown(true).with("a", "b"),
bb: Joi.object().keys({
c: Joi.string()
}).unknown(true)
}).xor( "aa.a" , ["bb.c"])
}
使用以下对象 xor 失败并出现 ValidationError: "value" 必须包含至少一个 [aa.a, bb.c] 但 aa.a 存在于提供的值中
{
"aa": {
"a": "fg",
"b": "fg"
},
"bb": {
"c": "l"
}
}
如果我尝试
.without( "aa.a" , ["bb.c"])
然后架构通过了,尽管在我看来它不应该通过,因为当 bb.c 与 aa.a 一起存在时应该失败
是不是因为这两个东西可能嵌套在其他对象中?
我们不能像这样指定深度链接的东西吗?
提前致谢
【问题讨论】:
标签: joi