Node Restify サービスに Bugsnag を追加しようとしています。すでにたくさんのルートがあるので、コード ベース全体に Bugsnag 呼び出しを追加しないようにしています。また、開発者がエラー レポートを追加するのを忘れるという間違いがないように、何かグローバルなことをしようとしています。
概念的には、とにかくres.send()ステータス コードを取得したいと考えています。statusCode が >=400 の場合、 を呼び出して Bugsnag に通知しBugsnag.notifyます。私はすでにどこでもエラーをチェックしているので、エラーはクライアント (ブラウザー、電話など) には表示されませんが、たとえば、送信さres.send(401, { message: 'You dont have permission to do that' })れます。どのルートなど。問題は、afterイベントをまったく発生させることができないことです:
server.on('after', function (req, res, route, error) {
console.log('AFTER')
});
私は何afterのためにあるのか誤解していると思います。index.jsルートやその他のミドルウェア ( server.use) が定義される前の my の一番上にあります。
私の一般的なコード構造は次のようになります。
server.post('/foo', function (req, res, next) {
FooPolicy.create(req, function (err) {
if (err) return res.send(err.code, err.data);
FooController.create(req.params, function (response) {
res.send(response.code, response.data)
next();
});
});
});
FooPolicy == 権限の確認
FooController == 実際にモデル/データを作成する