首页 > 解决方案 > Hapi/Joi 无法将规则应用于空规则集或最后添加的规则不支持规则属性

问题描述

当用户在登录期间没有输入密码时,我试图显示一条自定义消息。当我没有密码的自定义消息时,这很好用:

const ValidationSchemas = Joi.object({
  name: Joi.string().min(6).required().messages({
      "string.empty":"Display name cannot be empty",
      "string.min":"Min 6 characteers"
  }).optional(),
  email: Joi.string().min(6).required().email().message("Must be a valid email address"),
  password:Joi.string().min(6).required()
})

但是当我尝试为空密码字段提供自定义消息时,我收到一条错误消息 - 无法将规则应用于空规则集或添加的最后一条规则不支持规则属性

这是我试图为密码提供自定义消息的代码:

const ValidationSchemas = Joi.object({
  name: Joi.string().min(6).required().messages({
      "string.empty":"Display name cannot be empty",
      "string.min":"Min 6 characteers"
  }).optional(),
  email: Joi.string().min(6).required().email().message("Must be a valid email address"),
  password:Joi.string().min(6).required().message("Password is required!")
})

如何获得密码的自定义消息?非常感谢提前,非常感谢任何帮助。谢谢

标签: hapi

解决方案


试试这个:

const ValidationSchemas = Joi.object({    
    name: Joi.string()  
      .min(6)
      .required()
      .messages({
        'string.empty': 'Display name cannot be empty',
        'string.min': 'Min 6 characteers',
      })
      .optional(),
    email: Joi.string().min(6).required().email().message('Must be a valid email address'),
    password: Joi.string().required().min(6).message('Password is required!'),
  });

推荐阅读