JaySchema的严格模式验证

时间:2014-06-11 15:07:06

标签: node.js validation schema

我正在玩JaySchema(https://github.com/natesilva/jayschema)寻找我正在使用ExpressJS构建的NodeJS应用程序。我想知道是否有人创建或知道如何创建自定义代码来修改库以允许“严格”验证...“严格”,我的意思是任何不在架构内的JSON属性返回模式验证的错误状态。

如果有人对此有任何见解,我很乐意听取您的意见。

此外,如果有人知道提供此选项的替代库(最好使用NPM),请告知我们。

谢谢!

1 个答案:

答案 0 :(得分:1)

经过一番挖掘,我找到了解决方案。

JaySchema支持JSON Schema的标准(有关JSON Schema Standards Docs here的详细信息)。在这些标准中,有一个"附加属性"关键字被定义为我正在寻找的内容(找到更多信息here)。

根据文档(特别是第5.4.4.4节和5.4.4.5中的示例),如果" additionalProperties"设置为布尔值false,然后如果找到超出模式中定义的属性,则验证失败。

正如我上面提到的,如果你添加" additionalProperties"正如我在上面提到的那样,JaySchema支持这种JSON Schema标准。在对象级别为false,您将实现" strict"验证我一直在寻找。

如果您有兴趣,可以查看我在GitHub上的测试:

schema:使用" additionalProperty"设为假

test:添加了额外的属性以导致验证失败