wake-up-neo.com

wie kann ich das Netzwerk auf node.js überwachen, ähnlich wie die Entwickler-Tools von Chrome/Firefox?

Bei der Entwicklung von clientseitigen Javascript-Anwendungen ist das Entwickler-Netzwerk-Panel für das Debuggen von Netzwerkproblemen von unschätzbarem Wert:

enter image description here

Wie überwacht ein Entwickler, der eine NodeJS-Anwendung erstellt, den Netzwerkverkehr von der nodejs-Anwendung zu einem http/https-Server? Zum Beispiel, wie Sie den folgenden Netzwerkverkehr debuggen können?

var http = require('http');
var req = http.request ...
req.write ...
req.send()

Da mein Code einen https-Server eines Drittanbieters anruft, kann ich keine Wireshark oder ähnliche Paket-Sniffing-Tools verwenden.

Für weitere Informationen ist das Problem, das ich untersuchen möchte, hier .

BEARBEITEN:

Hier sind ähnliche Fragen, in denen Sie gefragt werden, wie Sie dasselbe in anderen Sprachen tun können: 

26
Chris Snow

Ich weiß, dass es nicht hübsch ist, aber Sie können den Inhalt der Antwortheader auf der Konsole innerhalb Ihres Aufrufs immer ausgeben:

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);
    });
});

Bei Ihrer ursprünglichen Frage ging es jedoch nicht um Probleme mit der Serverseite, sondern um ein Problem mit dem Knotencode selbst, so dass dies hier nicht viel nützt.

0
HeadCode

Verwenden Sie ein externes HTTP-Debugging-Tool. Ihre Optionen umfassen:

Starten Sie eine davon, sagen Sie ihnen, wohin der Datenverkehr geleitet werden soll, und richten Sie Ihre Anwendung auf diesen Debug-Proxy anstelle des realen Servers.

8
OhJeez

Ich bin auf diese Frage gekommen und habe nach etwas Ähnlichem gesucht, aber ich verwende das request -Paket. In diesem Fall müssen Sie nur diese Zeile in Ihren Code einfügen:

require('request-debug')(request);

(Stellen Sie sicher, dass das Request-Debug-Paket installiert ist.)

Dadurch werden alle Anforderungsdaten auf der Konsole gedruckt.

4
LucasSeveryn

Wenn Sie eine Knotenversion vor Knoten 8 verwenden, bin ich ein großer Fan von Node-Inspector:

https://github.com/node-inspector/node-inspector

Ich glaube es hat alles was Sie suchen:  enter image description here

0
pulekies

Wenn Sie nur die URLs des ausgehenden Datenverkehrs und dessen Ursachen anzeigen möchten, können Sie debugging-aid Verwenden.

npm i -D debugging-aid
node --require debugging-aid/network app.js 

Die resultierende Konsolenausgabe könnte folgendermaßen aussehen:

[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)

Haftungsausschluss:

Ich bin der Autor von Debugging-Hilfe
Diese Antwort wurde geschrieben, als Debugging-Hilfe auf Version 0.2.1 war

0
naugtur