express.js - 最好的POST json模式验证器

时间:2013-10-01 13:17:20

标签: javascript json validation express schema

我正在搜索我的 Express.js 应用程序中验证POST json请求的模块。

您在node.js应用中使用了哪些json架构模块?

我认为node-validator(https://github.com/chriso/node-validator)在这里不是一个选项,因为它只适用于字符串。

4 个答案:

答案 0 :(得分:10)

您好我最近写过express-jsonschema。与其他验证器的主要区别在于:

  1. 您使用标准json schemas进行验证。如果你有 编写您可能已经使用过的其他服务器端语言 之前。
  2. 它不会控制您的应用程序如何响应无效 数据。它确实让你有机会接触并做出反应 你要。根据我的经验,这是件好事 控制。
  3. express-schema-validatorexpress-validatePaperwork都很棒。它们每个都有自己独特的语法来声明模式,并控制应用程序如何响应无效数据(即状态代码和数据结构)。

    祝你好运!

答案 1 :(得分:7)

我做了这个 - 如果你仍然感兴趣:https://npmjs.org/package/isvalid

答案 2 :(得分:4)

我制作了Paperwork,这是一个非常简单的JSON验证解决方案。你可以这样做:

app.post('/my/route', paperwork({
  username: /[a-z0-9]+/,
  password: String,
  age: Number,
  interests: [String],
  jobs: [{
    company: String,
    role: String
  },
}, function (req, res) {
  // ...
});

它将验证:

{
  username: 'brucewayne',
  password: 'iambatman',
  age: 36,
  interests: ['Climbing', 'CQC', 'Cosplay'],
  jobs: [{
    company: 'Wayne Inc.',
    role: 'CEO'
  }]
}

或者会默默地回答400错误,其中包含有关错误的信息。检查文档以进行更高级的使用。

答案 3 :(得分:0)

选择JSON Schema验证规则的人有很多选择。这里有好的libs比较:https://github.com/ebdrup/json-schema-benchmark