Node.js 在Restify中的res.send()事件之后?
我正在尝试将Bugsnag添加到我的节点Restify服务中。我们已经有很多路由了,所以我尽量不在我们的代码库中添加Bugsnag调用,我也尝试做一些全局性的事情,这样开发人员就不会忘记添加错误报告 从概念上讲,我希望在任何Node.js 在Restify中的res.send()事件之后?,node.js,restify,bugsnag,Node.js,Restify,Bugsnag,我正在尝试将Bugsnag添加到我的节点Restify服务中。我们已经有很多路由了,所以我尽量不在我们的代码库中添加Bugsnag调用,我也尝试做一些全局性的事情,这样开发人员就不会忘记添加错误报告 从概念上讲,我希望在任何res.send()之后获得状态代码。如果状态码>=400,我想通过调用Bugsnag.notify来通知Bugsnag。我已经到处检查错误,这样就不会有错误出现在客户端(浏览器、手机等),但它们确实会被发送,例如,res.send(401,{message:'你没有权限这么
res.send()之后获得状态代码。如果状态码>=400,我想通过调用Bugsnag.notify
来通知Bugsnag。我已经到处检查错误,这样就不会有错误出现在客户端(浏览器、手机等),但它们确实会被发送,例如,res.send(401,{message:'你没有权限这么做'})
我希望能够连接到它,并传递给尝试这样做的人,什么路线,等等。问题是我根本无法启动after
事件:
server.on('after', function (req, res, route, error) {
console.log('AFTER')
});
我想我误解了
之后的内容。在定义任何路由或其他中间件(server.use
)之前,它位于我的index.js
的顶部
我的通用代码结构如下所示:
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==实际创建模型/数据问题在于之后的
事件当前与任何其他处理程序一样处理。这意味着,如果不在每个代码路径中调用next
,将永远不会发出after
事件
同时,添加下一个调用将导致触发after
事件处理程序
if (err) {
res.send(err.code, err.data);
next();
return;
}