【问题标题】:One route, two valid payloads in Hapi.js with Joi一条路线,两个有效载荷在 Hapi.js 中与 Joi
【发布时间】:2015-10-06 17:15:21
【问题描述】:

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

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')
}

【问题讨论】:

    标签: javascript node.js hapijs joi


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-05
      • 2014-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-31
      • 1970-01-01
      相关资源
      最近更新 更多