提问人:Jay Shukla 提问时间:10/13/2023 更新时间:10/26/2023 访问量:27
Joi 不起作用的条件验证
Conditional Validation with Joi not working
问:
我想在我的 json 架构中有条件地为不同的国家/地区定义一些属性。以下是我正在尝试的,但不知何故它不起作用。
Joi.object({
country: Joi.string().required(),
productValue: Joi.when(".country", {
is: "VN",
then: Joi.number().required(),
otherwise: Joi.string()
}),
pickUpDetails: Joi.object().keys({
ward: Joi.when(Joi.ref('country'), {
is: "VN",
then: Joi.string().required(),
otherwise: Joi.string()
})
}),
})
我正在针对上述架构进行验证的示例 JSON 如下:
{
"country": "ID",
"productValue": "",
"pickUpDetails": {
"ward": ""
}
}
根据我的理解和期望,上述JSON应该是有效的,因为我传递的国家/地区值是ID而不是VN。谁能帮忙?
Playground 在这里测试它
答:
0赞
Joshua Burbidge
10/26/2023
#1
空字符串未通过 的验证。你可以使用 ,或者如果你想要求它,并且总是 当 .""
Joi.string()
Joi.string().allow("")
Joi.valid("")
ward
productValue
""
country != "VN"
评论
allow("")