如何通过HTTP执行jsonschemavalidation?

我已经定义了一个restservice并试图做一个jsonschemavalidation与文书工作:

var _ = require('underscore'); var validate = require('isvalid-express'); var paperwork=require('paperwork'); module.exports = function (app) { app.post('/myroute', paperwork({ username: /[a-z0-9]+/, password: String, age: Number, interests: [String], jobs: [{ company: String, role: String }] }, function (req, res) { // ... })); }; 

这是我邮寄给myroute的请求:

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

但是它会抛出一个错误:

 TypeError: undefined is not a function at module.exports (c:\heroku\newher\node_codechallenge\node_modules\paperwork\paperwork.js:129:5) at module.exports (c:\heroku\newher\node_codechallenge\app\testroutes.js:12:26) at Object.<anonymous> (c:\heroku\newher\node_codechallenge\test.js:16:31) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.runMain [as _onTimeout] (module.js:497:10) at Timer.listOnTimeout [as ontimeout] (timers.js:112:15) 

在node.js中为http执行json模式validation的最佳方式是什么?

您可以考虑使用JSON模式标准,而不是文档使用的非标准模式定义。

有许多JavaScript JSON模式validation器,这里是基准: https : //github.com/ebdrup/json-schema-benchmark