【问题标题】:Removing special characters from @hapi/joi error messages从@hapi/joi 错误消息中删除特殊字符
【发布时间】:2020-03-02 17:51:05
【问题描述】:

我正在使用来自@hapi/joi 的 Joi 来验证我的数据,但是当我尝试通过删除反斜杠和双引号来自定义错误消息时;它不起作用。

我的验证功能

const validateSignup = (user) => {

  const schema = Joi.object().keys({
    first_name: Joi.string().min(3).max(20)
      .required(),
    last_name: Joi.string().min(3).max(20)
      .required(),
    email: Joi.string().email({ minDomainSegments: 2 }).trim().required(),
    password: Joi.string().regex(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/)
      .required()

  });

  const options = {
    abortEarly: false,
    key: '"{{key}}" ',
    escapeHtml: true,
    language: {
      string: {
          base: '{{key}} '
      }
  }
};
  return schema.validate(user, options);
};

我尝试在线搜索,但由于某种原因,它不起作用。我究竟做错了什么?请帮忙。

邮递员的回应

【问题讨论】:

标签: node.js joi


【解决方案1】:

在此版本https://github.com/hapijs/joi/issues/2262 之后,可以在@hapi/joi 中自定义错误消息以删除双引号。默认label:'"'。虽然此功能可用,但您可能要到https://www.npmjs.com/package/@types/hapi__joi/v/16.0.12 才能输入它,希望他们尽快添加。

    const options = {
      errors: {
        wrap: {
          label: ''
        }
      }
    };

    return schema.validate(user, options);

在您的情况下,上述配置删除了双引号。

Here is the output without double quote

【讨论】:

  • 感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2020-02-12
  • 2020-09-13
  • 2011-04-11
  • 2016-01-23
相关资源
最近更新 更多