javascript - Hapi.js 中使用 Joi 的一条路由、两个有效负载

标签 javascript node.js hapi.js joi

我正在尝试验证同一路线上的两个不同的有效负载架构。两个有效选项是:

validate: {
  payload: {
    email: Joi.string().required(),
    password: Joi.string().required()
  }
}

validate: {
  payload: {
    token: Joi.string().required()
  }
}

我尝试使用 andor 函数的组合,它非常接近,但它允许所有三个作为有效负载传递:

validate: {
  payload: Joi.object().keys({
    email: Joi.string().required(),
    password: Joi.string().required(),
    token: Joi.string().required()
  }).and('email', 'password').or('token', 'email', 'password')
}

最佳答案

事实上,我已经解决了。我需要将 xor 与两个依赖项之一一起使用:

validate: {
  payload: Joi.object().keys({
    email: Joi.string(),
    password: Joi.string(),
    token: Joi.string()
  }).and('email', 'password').xor('token', 'password')
}

关于javascript - Hapi.js 中使用 Joi 的一条路由、两个有效负载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32966075/

相关文章:

javascript - 在 Javascript 中,在哪些情况下应该使用 `==` 而不是 `localeCompare`,反之亦然?

node.js - 将 hapi js 作为守护进程运行

java - Retrofit 无法连接到 hapi 服务器 localhost?

javascript - 使用 Good 在 Hapi.js 中记录请求和响应负载

node.js - https nginx 403 禁止

javascript - React - 如何在另一个组件中显示来自图像 onClick 事件的组件?

具有数组原型(prototype)的 JavaScript 对象

javascript - AS3 - math.pow 和 math.log

node.js - 运行 npm install 时 JSON 输入意外结束

node.js - 安装node.js时编译错误