express.js - 最佳 POST JSON 架构验证器

express.js - best POST json schema validator

本文关键字:验证 JSON POST js 最佳 express      更新时间:2023-09-26

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

您在节点.js应用程序中使用什么 json 架构模块?

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

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

  1. 使用标准 json 架构进行验证。 如果你有编写了您可能已经使用过的其他服务器端语言以前。
  2. 它不控制应用程序如何响应无效数据。它确实给了你一个机会来勾搭和回应你想要。 根据我的经验,这很好控制。
表达式

架构验证器、表达式验证程序和文书工作都很棒。它们都有自己独特的语法来声明架构,还可以控制应用对无效数据(即状态代码和数据结构)的响应方式。

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

我做了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 错误,并提供有关问题的信息。查看文档以执行更高级的用法。

对于那些选择 JSON 架构验证规则的人来说,有很多选项。这里的好库比较:https://github.com/ebdrup/json-schema-benchmark