如何验证json对象字段与nodeJS tv4验证lib相同?

时间:2014-12-22 11:14:54

标签: json node.js validation jsonschema tv4

我正在编写用于验证用户创建方法的json请求的代码。验证者必须检查电子邮件字段是否等于字段confirmEmail。请求示例:

{
     "firstName":"Homer",
     "lastName":"Simpson", 
     "email":"test1234@fox.com",
     "confirmEmail":"test1234@fox.com",
     ...
}

我正在使用tv4架构验证库。目标是编写一个模式来验证email和confirmEmail字段之间的相等性。

当然我可以直接检查请求中的那些字段,但我会将它作为最后的手段,以防模式验证无效。

3 个答案:

答案 0 :(得分:1)

您无法使用json-schema测试属性之间的值的相等性。 Json-schema用于验证json结构。

您可以通过正则表达式测试这些字段是否存在以及它们是否是正确的电子邮件。您甚至可以测试它们是否属于枚举中的一组预定义值。但没有别的。

答案 1 :(得分:0)

在我的项目中,我使用jpv模块

const jpv = require('jpv');

let pattern = {
     "firstName" : /.*/,
     "email" : "[email]",
     ...
};

let isVaild =  jpv.validate(obj, pattern )

答案 2 :(得分:-1)

jpv.validate(data, messageSchema))