クライアント側のJavaScriptアプリケーションを開発する場合、開発者ネットワークパネルはネットワークの問題をデバッグするのに非常に役立ちます
NodeJSアプリケーションを作成する開発者は、nodejsアプリケーションからhttp/httpsサーバーへのネットワークトラフィックをどのように監視しますか?たとえば、次のネットワークトラフィックをデバッグする方法は?
var http = require('http');
var req = http.request ...
req.write ...
req.send()
私のコードはサードパーティのhttpsサーバーを呼び出しているため、wiresharkまたは同様のパケットスニッフィングツールを使用できません。
詳細については、調査しようとしている問題は here です。
編集:
他の言語で同じことを行う方法を尋ねる同様の質問を次に示します。
きれいではないことは承知していますが、リクエストコール内でコンソールのレスポンスヘッダーのコンテンツをいつでも出力できます。
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デバッグツールを使用します。次のオプションがあります。
それらの1つを起動し、トラフィックのルーティング先を伝え、アプリケーションを実サーバーではなくそのデバッグプロキシに向けます。
類似の何かを探してこの質問に来ましたが、request
パッケージを使用しています。この場合、コードに次の行を含めるだけで済みます。
require('request-debug')(request);
(request-debugパッケージがインストールされていることを確認してください)
これにより、すべての要求データがコンソールに出力されます。
ノード8より前のノードバージョンを使用している場合、私はノードインスペクターの大ファンです。
送信トラフィックの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)
免責事項:
私はデバッグエイドの著者です
この回答は、debug-aidがバージョン0.2.1のときに書かれました。