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",password:Joi.string().min(6).required().message("Password is 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().required().min(6).message('Password is required!'),});