在Express 3.0中捕获并跟踪中间件异常(较少中间件)

时间:2012-10-14 10:53:08

标签: node.js exception express less

首先,我试图遵循这个问题(但适用于Express 3.0):

Nodejs: How to catch an exception from middleware?

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
亲切的读者,如何解决这个问题?我想:

  • 显示错误堆栈跟踪
  • 显示服务器错误页面而不是崩溃

1 个答案:

答案 0 :(得分:1)

令我惊讶的是,问题出在中间件较少的问题上。我有点期待它成为一个更成熟的解决方案。我修好了made a pull request on Github。希望这可以帮助任何人遇到同样的问题。欢呼声。