Joi.js返回一个奇怪的错误消息

时间:2016-04-27 06:29:27

标签: joi

我正在使用joi来验证我的apis请求。一切都很好,除了错误消息返回带有斜杠'\'字符的字段名称。

{
  "message": "validation error",
  "error": {
    "status": 400,
    "statusText": "Bad Request",
    "errors": [
      {
        "field": "email",
        "location": "body",
        "messages": [
          "\"email\" must be a valid email"
        ],
        "types": [
          "string.email"
        ]
      }
    ]
  }
}

有人遇到过这个问题吗?

1 个答案:

答案 0 :(得分:1)

默认情况下,您的变量名称会放在引号中,并且这些引号为escaped with the backslash character。我找不到这个原因,所以也许别人可以在那里权衡。

但要覆盖此行为,您可以joi.validate()致电options并传入可选的var joi = require('joi'); var schema = joi.object().keys({ name: joi.string().required() }); var x = { name: 123 }; var options = { language: { string: { base: '{{key}} must be a string' } } }; var result = joi.validate(x, schema, options); console.log(JSON.stringify(result, null, 2)); 参数。此示例仅覆盖字符串的转义。

key

要覆盖所有类型的转义字符,请在options中指定var options = { language: { key: '{{key}} ' } }; 参数。注意最后的空格。

language

可以找到有关如何覆盖{{1}}的更详细示例override the language option