express.js - 最好的 POST json 模式验证器 [关闭]
Posted
技术标签:
【中文标题】express.js - 最好的 POST json 模式验证器 [关闭]【英文标题】:express.js - best POST json schema validator [closed] 【发布时间】:2013-10-07 16:11:36 【问题描述】:我正在寻找一个模块来验证我的 Express.js 应用程序中的 POST json 请求。
您在 node.js 应用程序中使用什么 json 架构模块?
我认为 node-validator (https://github.com/chriso/node-validator) 在这里不是一个选项,因为它只适用于字符串。
【问题讨论】:
我建议你查看这个库:npmjs.com/package/great-json-validator。如果你担心的话,它非常容易实现,而且重量很轻:) 【参考方案1】:嗨,我最近写了express-jsonschema。与其他验证器的主要区别是:
-
您使用标准json schemas 进行验证。如果你有
编写您可能使用过的其他服务器端语言
前。
它不控制您的应用程序如何响应无效
数据。它确实让你有机会参与进来并做出回应
你要。以我的经验,这是一件好事
控制。
express-schema-validator、express-validate 和 Paperwork 都很棒。它们每个都有自己独特的语法来声明架构,并且还控制您的应用如何响应无效数据(即状态代码和数据结构)。
祝你好运!
【讨论】:
投票支持解决方案设计背后的理性:(1) 使用 json-schema,一种专用的模式语言,有助于标准化我们设计 API 的方式,以及 (2) 避免从应用程序中劫持控制权(关注点分离)。 这里也一样。支持反转控制:D。 IMO 这是最好的解决方案。【参考方案2】:我做了这个 - 如果你仍然感兴趣:https://npmjs.org/package/isvalid
【讨论】:
试试 indicative.adonisjs.com ,有人类友好的 api 来验证架构【参考方案3】:我制作了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 错误并提供有关问题的信息。查看文档以执行更高级的用法。
【讨论】:
谢谢,看起来很不错!【参考方案4】:对于选择 JSON Schema 验证规则的人来说,有很多选择。好的库比较在这里:https://github.com/ebdrup/json-schema-benchmark
【讨论】:
以上是关于express.js - 最好的 POST json 模式验证器 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 Express.js 从请求中获取 POST 正文