【发布时间】:2018-07-31 00:17:02
【问题描述】:
我正在使用 Joi 来验证 HTTP 请求的标头。 我有两个标题。如果 FOO 存在,则 BAR 是必需的,否则 BAR 是可选的。这有效:
'FOO': Joi.string().optional(),
'BAR': Joi.string().when('FOO', { is: Joi.not(''), then: Joi.required() })
如果我希望 FOO 是一个数值,那么这是可行的:
'FOO': Joi.number().integer().default(0).optional(),
'BAR': Joi.string().when('FOO', { is: Joi.number().min(1), then: Joi.required() })
但是,如果我省略了 default(0),那么 Joi 认为当 FOO 不存在时需要 BAR。这是正确的行为吗?有没有更好的方法来处理这个问题?
【问题讨论】:
标签: javascript node.js validation joi