如何监控类似于Chrome / Firefox开发人员工具的node.js上的networking?
在开发客户端JavaScript应用程序时,开发人员networking面板对于debuggingnetworking问题非常重要:
创buildNodeJS应用程序的开发人员如何监控从nodejs应用程序到http / https服务器的networkingstream量? 例如如何debugging以下networkingstream量?
var http = require('http'); var req = http.request ... req.write ... req.send()
我的代码正在打给第三方的https服务器,所以我无法使用wireshark或类似的数据包嗅探工具。
欲了解更多信息,我试图调查的问题在这里 。
编辑:
这里有类似的问题,要求如何在其他语言中做同样的事情:
- PYTHON: 我怎样才能看到我的Python应用程序发送的整个HTTP请求?
- JAVA: 如何在Android上启用Apache公共HttpClient日志logging
我知道这不是很好,但是你可以在你的请求调用中始终在控制台上输出响应头的内容:
var req = https.request(options, function(res) { console.log("statusCode: ", res.statusCode); console.log("headers: ", res.headers); res.on('data', function(d) { process.stdout.write(d); }); });
然而,你的原始问题不是关于服务器端的问题,而是节点代码本身的问题,所以这里没有太多的用处。
使用外部HTTPdebugging工具。 您的select包括:
- node-http-proxy 如何使用node.js http-proxy在计算机中loggingHTTP通信?
- 用node.js编写的middlefiddle(但现在放弃了3年) https://github.com/mdp/middlefiddle
- mitmproxy – 一个CLI工具http://mitmproxy.org
- 小提琴手http://www.telerik.com/fiddler
- 还有更多 – https://www.google.pl/search?q=HTTP+debugger
您启动其中一个,告诉他们在哪里路由stream量,并指出您的应用程序在该debugging代理,而不是真正的服务器。
我来到这个问题寻找类似的东西,但我使用的request
包。 在这种情况下,您只需在代码中包含以下行:
require('request-debug')(request);
(确保安装了请求debugging软件包)
这将打印所有请求数据到控制台。