2017-02-24 25 views
0

通常、プロセスマネージャがクラッシュしたときにアプリケーションを再起動させます。クラッシュ後にサーバーを再起動する

Expressでの取り扱いしかし、私はちょうど発生したエラー:

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

私はいつもクラッシュした後、破損状態にあるアプリを想定し、したがって、再起動する必要があります。

Expressアプリケーションがクラッシュすると、上記のコードのようなエラーを処理するよりも、プロセスマネージャにアプリケーションを再起動させることをお勧めしますか?

答えて

1

いいえ、あなたのアプリは間違った状態ではなく、アプリケーションのエラーを適切に処理する必要があります。あなたのアプリケーションを再起動すると、エラーを飲み込むだけです。

私はあなたに例を示しましょう:

  1. ユーザーが投稿フォーム
  2. エラーがこの要求を処理するコントローラで起こっ提出します。
  3. 代わりのユーザーのために500を示すあなただけのアプリ

を再起動して、これは何度も何度も続けていきます。だから私はそれが任意のエラーでアプリを再起動する意味がないと思う。

プロセスマネージャについて:
プロセスマネージャは、nodejのプロセスを終了させる重大なエラーでアプリケーションを再起動します。これらの再起動がなければ、あなたのアプリケーション全体は動作しません。
また、あなたのアプリにロガーを追加することを強くお勧めします。ログをファイルに書き込むことができ、エラーの履歴を追跡することができます。 WinstonおよびDebugが良いものです。

関連する問題