ml-*_*ner 4 javascript validation node.js joi
我正在尝试根据父级中的值有条件地验证嵌套对象。
const schema = Joi.object({
a: Joi.string(),
b: Joi.object({
c: Joi.when(Joi.ref('..a'), { is: 'foo', then: Joi.number().valid(1), otherwise: Joi.number().valid(2) }),
}),
});
const obj = {
a: 'foo',
b: {
c: 2,
},
};
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我想要得到一个错误,即 c 必须为 1,但验证通过了。我尝试过有参考文献和没有参考文献的情况,但我显然一定是误解了 Joi 工作原理的一些基本原理。有什么帮助吗?
.您的通话中还需要一个Joi.ref()。..将上升到父树,然后另一个点表示属性。因此,对于您的情况,它将交给父母,..然后获得财产parent.a
使用Joi 游乐场这对我有用:
Joi.object({
a: Joi.string(),
b: Joi.object({
c: Joi.when(Joi.ref('...a'), {
is: 'foo',
then: Joi.number().valid(1),
otherwise: Joi.number().valid(2)
})
})
})
Run Code Online (Sandbox Code Playgroud)