Node.js:如何在错误事件时处理域模块中的请求对象
Node.js: How to handle request object in domain module on error event
我有一些http服务器,这是由域模块包装。服务器在某些请求上发送错误。是否有任何方法来获取引起错误的请求对象?
var http = require('http');
var domain = require('domain');
var d = domain.create();
d.on('error', function(err) {
console.error("Sorry, dude, we have a problem");
console.error(err.stack);
});
d.run(function() {
http.createServer(function(req, res) {
someBadFunction();
res.end();
}).listen(8080);
}
);
您可以将请求添加到域中,并在错误处理程序中将其过滤:
d.on('error', function(err) {
var req = d.members.filter(function(member) {
return member instanceof http.IncomingMessage;
})[0];
d.remove(req);
...
});
d.run(function() {
http.createServer(function(req, res) {
d.add(req);
someBadFunction();
res.end();
}).listen(8080);
});
然而,如果我要使用域(它们已被弃用),我会为每个请求创建一个新域(按照本文档),而不是将每个请求添加到顶级域,因为我认为上面的代码将无法正常工作,任何合理数量的请求进入
相关文章:
- 如何使用Node.js在JavaScript模块文件之间使用事件处理程序
- 将路由处理程序委托给NodeJS+Express中的其他模块
- 使用异步模块的Express + Mongoose请求处理程序的更简洁的方法
- Angularjs的智能表模块-与处理它有关的问题's指令
- 我没有'我不了解require.js是如何处理加载路径的.每次定义模块时是否需要使用require.config
- 如何使用RequireJS进行跨模块回调/事件处理
- "npm运行构建“;模块解析错误”;您可能需要一个适当的加载程序来处理此文件类型&”;
- 第一个jquery项目-在函数中使用处理程序来模块化它们
- Electron和Typescript:如何在运行时正确处理模块
- 节点 JS Express 模块是否异步处理请求
- RequireJS:如何处理浏览器和服务器之间共享的代码的不同模块依赖关系
- 从 HTML 元素(如 onclick 处理程序)调用 RequireJs 模块中的方法
- 无法使用请求模块处理 url
- 如何编写 Node.js 模块来处理传入的管道流
- 在nodejs express模块中处理所有事件之前发送响应
- Node.JS+Socket.io,将套接字事件处理程序移动到外部模块
- 如何在 node.js 中处理异步应用程序中的模块
- 如何使用firebase工具作为一个模块并处理promise
- Web Workers文件是否可以处理包含或模块
- 如何使用微应用的Node.js模块处理shopify的API调用限制