【发布时间】:2019-11-24 09:21:48
【问题描述】:
在尝试验证请求时,在某些时候发出请求时,可能会或可能不会在请求中提供某些对象。如何设置正确的选项以允许这种情况发生,而 Joi 不会出现错误?即 {"statusCode":400,"error":"Bad Request","message":"child \"B\" 失败,因为 [\"B\" 必须是对象]"}
我似乎错误地使用了 .optional() 方法。我在架构中的一个对象上设置 optional() 认为它是否允许传递一个对象,但如果对象没有在请求中传递,Joi 似乎认为这是一个错误
validate: {
payload: {
A: Joi.object().keys({
a1: Joi.string().allow('').optional(),
}).allow(null).optional(),
B: Joi.object().keys({
b1: Joi.string().allow('').optional(),
}).allow(null).optional(),
}
我希望以上内容允许我传递像
这样的有效负载{
A: { a1 : 'words' }
}
没有返回关于“B”的错误,但事实并非如此。
【问题讨论】: