我使用Joi进行http正文验证。我想允许keyA存在或者keyB存在且需要但不是两者都存在。我没有在文档中找到我正在寻找的东西,似乎我的架构中出现了一个循环循环。
const messageSchema = Joi.object().keys({
keyA: Joi.when('keyB', { is: Joi.exist(), then: Joi.forbidden(), otherwise: Joi.string().required() }),
keyB: Joi.when('keyA', { is: Joi.exist(), then: Joi.forbidden(), otherwise: Joi.string().uri().required() }),
});
有什么想法吗?
答案 0 :(得分:2)
终于找到了我要找的东西:
const messageSchema = Joi.object().keys({
keyA: Joi.string(),
keyB: Joi.string().uri(),
}).or('keyA', 'keyB');