【发布时间】:2018-09-26 00:51:56
【问题描述】:
我正在使用 npm 模块 Joi 来验证请求。
这是我的代码,我预计请求会出错,因为如果 invoice_number 则需要 fooReq,但 Joi 没有返回任何错误。
let fooReq = Joi.object({
city: Joi.string().required(),
zip: Joi.string().required(),
}).required();
let fooOpt = Joi.object({
city: Joi.string(),
state: Joi.string(),
}).optional();
let barSch = {
invoice_number: Joi.string(),
shipping: Joi.alternatives()
.when('invoice_number',
{
is: Joi.string(),
then: fooReq,
otherwise: fooOpt
}
)
};
let request = {
invoice_number: "123"
};
console.log(Joi.validate(request, barSch));
【问题讨论】: