[英]How to get Developer tools' height in chrome/firefox/safari?
[英]how to monitor the network on node.js similar to chrome/firefox developer tools?
在開發客戶端 javascript 應用程序時,開發者網絡面板對於調試網絡問題非常有用:
創建 NodeJS 應用程序的開發人員如何監控從 nodejs 應用程序到 http/https 服務器的網絡流量? 例如如何調試以下網絡流量?
var http = require('http');
var req = http.request ...
req.write ...
req.send()
我的代碼正在調用第三方 https 服務器,因此我無法使用wireshark 或類似的數據包嗅探工具。
有關更多信息,我要調查的問題在這里。
編輯:
以下是類似的問題,詢問如何用其他語言做同樣的事情:
使用外部 HTTP 調試工具。 您的選擇包括:
您啟動其中之一,告訴他們將流量路由到哪里,並將您的應用程序指向該調試代理而不是真正的服務器。
如果您只需要查看傳出流量的 URL 及其原因,您可以使用debugging-aid
npm i -D debugging-aid
node --require debugging-aid/network app.js
結果控制台輸出可能如下所示:
[aid] network, outgoing to: http://example.com/
stack: at Agent.createSocket (_http_agent.js:234:26)
at Agent.addRequest (_http_agent.js:193:10)
at new ClientRequest (_http_client.js:277:16)
at Object.request (http.js:44:10)
at Request.start (myapp-path/node_modules/request/request.js:751:32)
at Request.end (myapp-path/node_modules/request/request.js:1511:10)
[aid] network, outgoing to: http://example.com/
stack: at Agent.createSocket (_http_agent.js:234:26)
at Agent.addRequest (_http_agent.js:193:10)
at new ClientRequest (_http_client.js:277:16)
at Object.request (http.js:44:10)
at get (myapp-path/node_modules/got/source/request-as-event-emitter.js:234:22)
at Immediate.<anonymous> (myapp-path/node_modules/got/source/request-as-event-emitter.js:305:10)
免責聲明:
我是調試助手的作者
這個答案是在調試幫助版本 0.2.1 時寫的
我來到這個問題尋找類似的東西,但我正在使用request
包。 在這種情況下,您需要做的就是在代碼中包含這一行:
require('request-debug')(request);
(確保安裝了請求調試包)
這會將所有請求數據打印到控制台。
我知道這並不漂亮,但是您始終可以在請求調用中的控制台上輸出響應標頭的內容:
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);
});
});
但是,您最初的問題不是關於服務器端的問題,而是節點代碼本身的問題,所以這在這里沒有多大用處。
使用 HTTP 工具包。 通過執行在 macOS 中安裝:
brew install --cask http-toolkit
它將提供有關如何攔截 node、chrome 等的說明。
我還希望在 devtools 中有一個用於 NodeJS 調試的網絡選項卡。 由於它不存在,我使用了下面的 package。 這會跟蹤來自 NodeJs 應用程序的所有 http 和 https 請求,並在類似於 UI 的 chrome 網絡選項卡中顯示它們。
一種簡單的方法是使用船尾記錄器功能。 由於您應該為測試用例存根通信,因此您可能無論如何都需要將此庫作為開發依賴項。
以下將所有 http[s] 通信記錄到控制台,但您可以記錄到文件等。此處的文檔https://github.com/nock/nock#recording
import nock from 'nock'
nock.recorder.rec({
output_objects: true
})
您可以使用 grackle_tracking 腳本並使用 grackle 的平台查看您的數據 - 我們只是出於完全相同的目的構建它: https://www.getgrackle.com/libraries#grackle_tracking_overview
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.