首先,我试图遵循这个问题(但适应了Express 3.0):
Nodejs:如何从中间件中捕获异常?
app.use(function(err, req, res, next) {
console.error('Middleware exception:' + err.stack);
next(err);
});
但是,无论我把它放在中间件链的哪个位置,在app.use(lessMiddleware);
之前或之后(从require('less-middleware')
)我仍然得到:
GET /? 304 44ms
source : <my path>/style.less
dest : <my path>/style.css
read : <my path>/style.less
DEBUG:
DEBUG: <my path>/node_modules/less-middleware/node_modules/less/lib/less/parser.js:385
throw new(LessError)(e, env);
^
DEBUG: [object Object]
DEBUG: Program node app.js exited with code 1
善良的读者,如何解决这个问题?我想:
- 显示错误堆栈跟踪
- 显示服务器错误页面而不是崩溃
令我惊讶的是,问题出在中间件较少。我有点期望它是一个更成熟的解决方案。我修复了它并在Github上提出了拉取请求。希望这有助于遇到相同问题的任何人。干杯。