Hapi/Joi 无法将规则应用于空规则集或最后添加的规则不支持规则属性
Hapi/Joi Cannot apply rules to empty ruleset or the last rule added does not support rule properties
我正在尝试在用户登录时未输入密码时显示自定义消息。当我没有密码的自定义消息时,这工作正常:
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!")
})
如何获得密码的自定义消息?非常感谢,非常感谢任何帮助。谢谢
试试这个:
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!'),
});
我遇到了同样的问题,后来我发现使用 message()
会终止当前的规则集,并且不能再跟另一个规则选项。
所以我没有使用 message()
,而是使用了这个:messages({ 'any.only': 'GENERAL_MESSAGE_HERE' })
因此,对于您的情况,您应该将代码更改为:
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().messages({
'any.only': 'Must be a valid email address',
}),
password: Joi.string()
.min(6)
.required()
.messages({ 'any.only': '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().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!")
})
如何获得密码的自定义消息?非常感谢,非常感谢任何帮助。谢谢
试试这个:
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!'),
});
我遇到了同样的问题,后来我发现使用 message()
会终止当前的规则集,并且不能再跟另一个规则选项。
所以我没有使用 message()
,而是使用了这个:messages({ 'any.only': 'GENERAL_MESSAGE_HERE' })
因此,对于您的情况,您应该将代码更改为:
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().messages({
'any.only': 'Must be a valid email address',
}),
password: Joi.string()
.min(6)
.required()
.messages({ 'any.only': 'Password is required!' }),
})