📅  最后修改于: 2023-12-03 14:57:10.087000             🧑  作者: Mango
在Javascript的开发中,很多时候需要对用户输入的数据进行验证,此时就需要使用Joi。Joi是一种对象模式描述语言,用于描述需要被验证的对象的合法结构以及输入数据的类型、格式等规则。
但是,当Joi未通过验证时,输出的错误消息并不总是很友好,这时我们需要自定义错误消息以更好地反馈给我们的用户。
为了更好地展示如何自定义错误消息,我们以验证邮箱为例。
首先,我们需要在Joi的验证中添加对邮箱格式的验证规则:
const Joi = require('joi');
const schema = Joi.object().keys({
email: Joi.string().email().required()
});
const result = schema.validate({ email: 'invalidEmail' });
在这个例子中,我们定义了一个对象模式,其中包含了一个属性email,通过Joi.string().email().required()定义了我们对邮箱格式的验证规则。
接下来,我们需要修改validate()方法来自定义错误消息。在这里我们可以使用Joi.ValidationError()方法,来创建一个新的错误对象并更改其消息。
const Joi = require('joi');
const schema = Joi.object().keys({
email: Joi.string().email().required()
});
const options = {
language: {
string: {
email: '邮箱格式不正确!'
}
}
}
const result = schema.validate({ email: 'invalidEmail' }, options);
if (result.error) {
const message = result.error.details[0].message;
console.log(message);
}
在这里,我们使用了options对象来指定我们的自定义错误消息。在这个例子中,我们更改了Joi验证库默认消息string.email为“邮箱格式不正确!”。
最后,我们需要检查是否存在验证错误。如果存在错误,我们需要使用Joi.ValidationError.details[0].message来输出错误消息。
通过自定义错误消息,我们可以更好地提高用户体验,减少用户对程序的困惑。在Joi中自定义错误消息非常简单,只需要按照上述步骤进行即可。