邮递员:更具描述性的TV4验证错误消息

pow*_*wlo 7 api json node.js postman tv4

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

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

if (tv4.error){
    console.log("Validation failed: ", tv4.error);
}
Run Code Online (Sandbox Code Playgroud)

我回来的错误很难理解。

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

但是我需要知道验证失败的领域。我如何获得此信息?tv4npm页面建议该错误消息应更具描述性。

cod*_*e4j 6

根据tv4的文档,您可以使用来打印错误位置的路径console.log(tv4.error.dataPath),我不知道为什么未在控制台中记录此属性。

文档在这里。文档中的相关部分是:

如果验证返回false,则可以在tv4.error中找到有关验证失败原因的说明。

错误对象看起来像:

{
    "code": 0,
    "message": "Invalid type: string",
    "dataPath": "/intKey",
    "schemaPath": "/properties/intKey/type"
}
Run Code Online (Sandbox Code Playgroud)

  • 控制台仅通过记录tv4结果就没有记录任何dataPath:`var res = tv4.validateResult(data,schema); console.log(“ res”,res);`。我必须添加.error.dataPath才能真正看到内容`console.log(“ path”,res.error.dataPath);`。 (2认同)