【发布时间】:2016-12-14 22:51:39
【问题描述】:
我的 app.js 中有以下代码
'use strict';
var SwaggerExpress = require('swagger-express-mw');
var app = require('express')();
module.exports = app; // for testing
var config = {
appRoot: __dirname // required config
};
SwaggerExpress.create(config, function(err, swaggerExpress) {
console.log("Web Server started.");
if (err) { throw err; }
// install middleware
swaggerExpress.register(app);
app.use(function(err, req, res, next) {
console.log('caught it!');
dosomething();
});
var port = process.env.PORT || 10010;
app.listen(port);
});
还有我的控制器 hello_world.js
function hello(req, res) {
throw new Error('my error!');
}
当我将应用程序和浏览器启动到http://localhost:10010/hello 时,这将返回一个 500 响应以及我的错误消息,如预期的那样。然而,错误处理中间件根本没有被调用。有什么想法吗?
【问题讨论】:
-
错误处理程序出现在
swaggerExpress.register()函数之后很重要。