2017-02-24 59 views
0

我通常让我的进程管理器在崩溃时重新启动我的应用程序。让服务器在崩溃后重新启动

不过,我只是遇到了错误处理的快递:

app.use((err,req,res,next) => { 
    console.log(err.stack); 
    res.status(500).send({"Error" : err.stack}); 
}); 

我一直认为应用程序是在崩溃后损坏状态,因此应重新启动。

当Express应用程序崩溃时,让流程管理器重新启动应用程序比处理上面的代码错误更好吗?

回答

1

不,您的应用程序未处于错误状态,您需要正确处理任何应用程序中的错误。当你重新启动你的应用程序,你只是吞下一个错误。

让我告诉你的例子:

  1. 用户提交表单后
  2. 在控制器处理此请求发生错误。
  3. 而是显示500用户的您只需重新启动应用程序

,这将连连不断。所以我认为在任何错误上重新启动应用都没有任何意义。

关于流程经理:
进程管理确实上杀的的NodeJS进程严重错误重新启动应用程序。没有这些重新启动你的整个应用程序将无法正常工
另外我强烈建议您将记录器添加到您的应用程序。它可以将日志写入文件,并且可以跟踪错误的历史记录。 WinstonDebug是很好的。

相关问题