【问题标题】:Postman: More descriptive tv4 validation error message邮递员:更具描述性的 tv4 验证错误消息
【发布时间】:2017-12-27 10:37:43
【问题描述】:

我正在使用postman 来验证从 api 返回的 json 数据的架构。

我有一个通过基本 http 验证运行的测试,然后以:

if (tv4.error){
    console.log("Validation failed: ", tv4.error);
}

我得到的错误很难理解。

验证失败:12:22:41.316
对象:{}
消息:“无效类型: 数字(预期字符串)"
名称:“验证错误”
类型:“错误”

但我需要知道验证失败的字段。我怎样才能得到这些信息? npm page for tv4 建议错误消息应该更具描述性。

【问题讨论】:

  • 如果您能看到任何相关内容,请尝试打印整个 tv4 对象
  • 不,tv4 本身并没有什么真正有用的东西。

标签: json node.js api postman tv4


【解决方案1】:

根据tv4的文档,可以使用console.log(tv4.error.dataPath)打印错误位置的路径,不知道为什么控制台没有记录这个属性。

文档是here。 文档中的相关部分是:

如果验证返回 false,那么验证失败的原因可以在 tv4.error 中找到。

错误对象看起来像:

{
    "code": 0,
    "message": "Invalid type: string",
    "dataPath": "/intKey",
    "schemaPath": "/properties/intKey/type"
}

【讨论】:

  • 控制台没有通过仅记录 tv4 结果来记录任何 dataPath:var res = tv4.validateResult(data, schema); console.log("res",res);。我必须添加 .error.dataPath 才能真正看到内容console.log("path",res.error.dataPath);
猜你喜欢
  • 2015-04-29
  • 1970-01-01
  • 2011-07-10
  • 2020-01-17
  • 1970-01-01
  • 2011-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多