私は NodeJS と Express を使用してアプリを構築しており、最近 Raygun を使用してエラー処理を組み込みました。
Raygun は、特に Express で使用するためのエラー ハンドラーを提供しますが、ミドルウェアの最後に実行する必要があります。今私は持っています:
//Log the domain id, req, and error to the console
app.use(function errorHandler(err, req, res, next) {
console.log('error on request %d %s %s: %s', process.domain.id, req.method, req.url, err)
next(err)
})
//Log the error to Raygun
//!Must be last piece of middleware to be defined
app.use(raygunClient.expressHandler);
しかし問題は、サーバーが引き続き実行され、アプリが不明な状態のままになる可能性があることです。サーバーを正常にシャットダウンしたいのですが、追加すると
//Shuts down the process
app.use(function errorHandler(err, req, res, next) {
process.exit()
})
その場合、Raygun のエクスプレス ハンドラは機能しません。
どうする?