使用on nodejs从另一个模块捕获事件

时间:2014-12-14 16:17:26

标签: node.js events javascript-events event-handling eventemitter

我使用名为requesthttps://www.npmjs.com/package/request)的模块在我的应用程序上执行一系列http请求。现在我正在尝试向其添加日志记录功能,但似乎无法弄清楚如何从请求模块捕获事件。我可以这样做事件捕获:

var request = require('request');

request('http://www.stackoverflow.com').on('request', function (data) {
  console.log(data.method + ":" + data._headers.host);
}).on('response', function (data) {
  console.log("Status: " + data.statusCode);
});

这将产生

的输出
$ node test.js 
GET:www.stackoverflow.com
GET:stackoverflow.com
Status: 200

如何在request()调用之后捕获事件而不指定它?理想情况下,我只需要request模块和其他文件,其中包含请求事件的所有侦听器,并开始使用request而不必担心事件处理。因此,最终结果将在代码文件中看起来像:

var request = require('request');
var requestLogger = require('reqLogger')(request);

1 个答案:

答案 0 :(得分:0)

根据request readme,至少有几种不同的方法可以从request获取调试信息。特别是第三个解决方案(使用request-debug)似乎可以让您完全了解您当前正在尝试做的事情。