快速处理偶然的​​未定义错误

时间:2012-12-30 10:22:01

标签: javascript node.js express

如果在任何时候,我得到一个错误,通过尝试使用未定义的东西,我的整个快递应用程序崩溃与TypeError,而不是通过重定向到HTTP 500页面很好地处理它。

有没有办法一般地处理这些异常,或者我需要手动检查我的路由器方法?

3 个答案:

答案 0 :(得分:2)

您是否尝试过docs - Express Error handling

  

错误处理中间件的定义与常规中间件一样,但必须使用4的arity定义,即签名(err,req,res,next):

app.use(function(err, req, res, next) {
   console.error(err.stack);
   res.send(500, 'Something broke!');
});
     

虽然不是强制性的错误处理中间件通常是最后定义的......

答案 1 :(得分:0)

也许try { ... } catch(e) {...}正是您要找的? 或者只检查值是否未定义。简单if (value) { ...将完成工作

答案 2 :(得分:0)

正如现象所述,您可以使用快速错误处理程序中间件来处理集中位置的错误。

app.use(function(err, req, res, next) {
console.error(err.stack);
res.send(500, 'Something broke!');
});

比传递路由中的错误,您可以使用旁边的错误将错误传递给此中间件,如此

app.get('/login',function(req,res,next){
next("your error"); // The error middle-ware handle this error.
})