【问题标题】:Confirm password cannot be set as required with JOIJOI不能按要求设置确认密码
【发布时间】:2020-02-01 16:53:54
【问题描述】:

在我的 Node 应用程序中,我使用 @hapi.Joi 包进行验证。我有以下代码。

export function validateUser(user) {
  const schema = Joi.object({
    firstName: Joi.string().min(1).max(20).required(),
    lastName: Joi.string().min(1).max(20).required(),
    email: Joi.string().email().max(50).required(),
    mobile: Joi.string().min(8).max(12).required(),
    password: Joi.string().min(8).max(16).required(),
    confirmPassword: Joi.ref('password'),
  });

  return schema.validate(user);
}

但这不会检查是否需要确认密码。我试过 Joi.ref('password').required()。但这给了我一个错误。我该如何解决这个问题??

【问题讨论】:

  • gives me an error 你遇到了什么错误?
  • 您应该检查密码和确认密码是否相同。因此,如果没有输入确认密码,则表示它与密码不同。
  • 请查看此参考reference

标签: node.js joi


【解决方案1】:

您可以将 Joi.any().valid() 与 Joi.ref() 一起使用:

confirmPassword: Joi.any().valid(Joi.ref('password')).required().options({ language: { any: { allowOnly: 'must match password' } } })

【讨论】:

    【解决方案2】:

    供以后参考

    password: Joi.string().required(),    
    confirmPassword:Joi.string().required().valid(Joi.ref('password')),
    

    【讨论】:

      猜你喜欢
      • 2015-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-26
      • 1970-01-01
      • 2020-11-24
      • 2015-07-23
      • 2018-09-06
      相关资源
      最近更新 更多