Joi验证密钥或其他密钥的存在

时间:2018-04-20 15:41:04

标签: joi

我使用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() }),
});

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

终于找到了我要找的东西:

const messageSchema = Joi.object().keys({
 keyA: Joi.string(),
 keyB: Joi.string().uri(),
}).or('keyA', 'keyB');