如何安装中间件招摇表达要快,验证
我想修改我的快递,招摇的项目和以下this tutorial to add input validation into an express app
我用swagger-express-mw
包使用swagger project create app
而是生成一个样板它不清楚的地方,如我上面提到的教程解释我可以加我的中间件。具体来说,我不能拦截我的要求,我得到一个类型错误:
TypeError: req.checkBody is not a function
at saveNote
这是我的项文件。从bodyParser和验证功能一切的除了从样板来,所以我不明白
SwaggerExpress.create(config, function(err, swaggerExpress) {
if (err) { throw err }
// install middleware
swaggerExpress.register(app)
// middleware
app.use(bodyParser.urlencoded({ extended: false })); // my code
app.use(validator()) // my d
const port = process.env.PORT || 10010
app.listen(port)
// if (swaggerExpress.runner.swagger.paths['/notes']) {
// console.log('try this:\nlocalhost:10010/notes to get all notes')
// }
})
回答如下:
我知道这是一个老问题,但是这可能帮助沿着way.Here有人展示如何用swagger-tools
或swagger-express-mw
NPM swagger-node-runner
整合包装简单的代码的NodeJS。
var SwaggerExpress = require('swagger-express-mw');
var swaggerTools = require('swagger-tools');
var app = require('express')();
module.exports = app; // for testing
var config = {
appRoot: __dirname // required config
};
SwaggerExpress.create(config, function(err, swaggerExpress) {
if (err) {
throw err;
}
// install middleware
swaggerExpress.register(app);
//swaggerobject is created by the swagger-express-mw module which is stored in runner object.
var swaggerObjectLoaded = swaggerExpress.runner.swagger;
//pass the runner object to initializeMiddleware function
swaggerTools.initializeMiddleware(swaggerObjectLoaded, function(middleware) {
app.use(middleware.swaggerMetadata());
// Validate Swagger requests
app.use(middleware.swaggerValidator());
// Route validated requests to appropriate controller
app.use(middleware.swaggerRouter(options));
// Serve the Swagger documents and Swagger UI
app.use(middleware.swaggerUi());
var port = process.env.PORT || 10010;
app.listen(port);
if (swaggerExpress.runner.swagger.paths['/hello']) {
console.log('try this:\ncurl http://127.0.0.1:' + port + '/hello?name=Scott');
}
});
});