📜  节点中的 joi 验证自定义消息 - Javascript (1)

📅  最后修改于: 2023-12-03 14:57:10.087000             🧑  作者: Mango

节点中的 Joi 验证自定义消息 - Javascript

在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中自定义错误消息非常简单,只需要按照上述步骤进行即可。