9

我正在寻找一个模块来验证我的Express.js应用程序中的 POST json 请求。

您在 node.js 应用程序中使用什么 json 模式模块?

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

4

4 回答 4

13

嗨,我最近写了express-jsonschema。与其他验证器的主要区别是:

  1. 您使用标准json 模式进行验证。如果您编写过其他服务器端语言,您可能以前使用过它们。
  2. 它不控制您的应用程序如何响应无效数据。它确实让你有机会随心所欲地参与进来并做出回应。以我的经验,这是很好控制的。

express-schema-validatorexpress-validatePaperwork都很棒。它们每个都有自己独特的语法来声明模式,并且还控制您的应用程序如何响应无效数据(即状态代码和数据结构)。

祝你好运!

于 2015-02-04T21:34:56.400 回答
7

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

于 2014-01-31T23:55:07.677 回答
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 错误,并提供有关问题所在的信息。检查文档以执行更高级的用法。

于 2013-10-01T14:33:41.083 回答
2

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

于 2016-01-22T16:59:22.393 回答