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 == 実際にモデル/データを作成する