【发布时间】:2020-04-09 16:11:35
【问题描述】:
我有两个字段 phone 字段和 phoneCode 字段。我正在使用“@hapi/joi”16.1.8 版本和 expressjs。
对于自定义错误消息,我使用 .messages() 方法而不是 .error() 方法,因为它非常直接。这是我尝试使用 Joi 系统验证的代码:
const data = { phone, phoneCode };
const schema = Joi.object({
phone: Joi.string().pattern(/^[0-9]{10}$/).required().messages({
"string.base": "Sorry! It looks like something went wrong. Please try later.",
"string.pattern.base": "Phone number must be a 10 digits number.",
"string.empty": "Phone Number is not allowed to be empty."
}),
phoneCode: Joi.string().max(3).required().messages({
"number": "Want to send default message if any error"
})
});
let validate = schema.validate(data, { abortEarly: false });
当 phoneCode 键中出现错误时,我只想发送一条默认消息。我也试过了
"number.*": "Want to send default message if any error"
OR
Joi.string().max(3).required().message("Want to send default message if any error") // It give Error: Cannot apply rules to empty ruleset
OR
phoneCode: Joi.string().max(3).message("Want to send default message if any error" ).required() // This worked upto a limit, not working if i sent phoneCode empty.
【问题讨论】:
标签: node.js express hapijs joi