Jua*_*uez 7 javascript validation schema node.js joi
我在尝试验证 JSON 文件时遇到问题,更具体地说,我在when条件方面遇到问题。
我有一把钥匙,它必须是过去的日期,但不是必需的。然后我有一个b键,它应该是一个 url,如果 a 为 null/空, 则 b 可以为空,否则必须是 required。
我将在下面留下我的代码以使其清楚,但现在如果b为空但a不为空,我不会收到任何错误。
a: Joi.date().less("now").raw().optional().allow(null, ""),
b: Joi.string()
.uri({ scheme: [/https?/] })
.when("a", {
is: Joi.any().empty(),
then: Joi.optional().allow(null, ""),
otherwise: Joi.required(),
}),
Run Code Online (Sandbox Code Playgroud)
找到解决方案了,我的条件是错误的。
我使用的是:Joi.any().empty(),而不是:Joi.any().valid(null, "")并且它有效。
所以解决方案是这样的:
a: Joi.date().less("now").raw().optional().allow(null, ""),
b: Joi.string()
.uri({ scheme: [/https?/] })
.when("a", {
is: Joi.any().valid(null, ""),
then: Joi.optional().allow(null, ""),
otherwise: Joi.required(),
}),
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6766 次 |
| 最近记录: |