在开发客户端JavaScript应用程序时,开发人员网络面板对于调试网络问题非常有用:
创建NodeJS应用程序的开发人员如何监控从nodejs应用程序到http/https服务器的网络流量?例如,如何调试以下网络流量?
var http = require('http');
var req = http.request ...
req.write ...
req.send()
我的代码正在调用第三方https服务器,所以我无法使用wireshark或类似的数据包嗅探工具。
要了解更多信息,我试图调查的问题是here。
编辑:
下面是一些类似的问题,询问如何在其他语言中做同样的事情:
9条答案
按热度按时间zvms9eto1#
我还希望在devtools中有一个用于NodeJS调试的网络选项卡。由于没有,我使用了下面的包。这将跟踪来自NodeJs应用程序的所有http和https请求,并在类似UI的chrome网络选项卡中显示它们。
Network Activity Viewer
xtfmy6hx2#
您可以使用grackle_tracking脚本并通过grackle的平台查看您的数据-我们只是出于完全相同的目的构建此脚本:https://www.getgrackle.com/libraries#grackle_tracking_overview
krugob8w3#
使用外部HTTP调试工具。您的选择包括:
您启动其中的一个,告诉它们将流量路由到哪里,并将您的应用程序指向该调试代理,而不是真实的的服务器。
fae0ux8s4#
如果您只需要查看传出流量的URL及其原因,则可以使用
debugging-aid
生成的控制台输出可能如下所示:
免责声明:
我是debugging-aid的作者
此答案是在debugging-aid版本为0.2.1时编写的
lstz6jyr5#
我来这个问题寻找类似的东西,但我使用的是
request
包。在这种情况下,您需要做的就是在代码中包含这一行:require('request-debug')(request);
(make确保已安装request-debug包)
这将把所有请求数据打印到控制台。
mznpcxlj6#
一个简单的方法是使用诺克录音机功能。由于您应该为测试用例进行存根通信,因此无论如何您可能都需要将此库作为开发依赖项。
下面的代码将所有http[s]通信记录到控制台,但您可以记录到文件等。文档请访问https://github.com/nock/nock#recording
pprl5pva7#
使用HTTP Toolkit。在macOS中执行以下命令进行安装:
它将提供如何拦截node、chrome和其他内容的说明。
iszxjhcz8#
我知道这并不美观,但您始终可以在请求调用中的控制台上输出响应头的内容:
但是,您最初的问题不是关于服务器端的问题,而是关于节点代码本身的问题,因此在这里没有太大用处。
y0u0uwnf9#
如果你使用的节点版本早于node 8,我是node-inspector的忠实粉丝:
https://github.com/node-inspector/node-inspector
它有你正在寻找的一切: