node.js和express中的异常处理

Tuc*_*uco 5 javascript exception-handling node.js express

我是javascript和node的新手,并且一直在尝试使用node.js和express创建一个应用程序.

我已经为错误添加了适当的回调,但它们并没有放在任何地方,有时node.js服务器因为一些异常而停止.

建议使用'upstart'或'forever'来保持node.js始终运行,并在node.js停止时启动它.

似乎快递通过以下链接http://expressjs.com/guide.html#error-handling为所有例外提供了所有例外.

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

它现在对我有用.但是我在某个地方读到这样的错误并不是一个好主意,因为它可能有副作用并且可能使变量处于不一致状态?同样捕获这样的异常并不适用于所有情况,并且在某些情况下服务器仍然可以停止某些异常.这是真的吗?

我的问题可能是这个.

1)如上所述的异常处理是否可以使某些变量处于不一致状态?2)是否会有一些例外仍会停止服务器?

感谢和问候

图科

小智 3

1) 这种异常处理方法是否会使某些变量处于不一致状态取决于您的实现。

如果您将所有变量的范围限定为特定请求和函数,并且不访问全局或更高级别的变量(例如全局应用程序对象),那就没问题。垃圾收集器在异常发生后立即清理未使用的内存。

2)是的,有可能出现一些异常导致服务器停止。因此,您应该为流程设置一个全局异常处理处理程序,如下所示:http ://nodejs.org/api/process.html#process_event_uncaughtException