2015-03-05 10 views
13

Nello sviluppo lato client javascript applicazioni, il pannello di rete di sviluppatori ha un valore inestimabile per problemi di rete di debug:come monitorare la rete su node.js in modo simile agli strumenti di sviluppo di chrome/firefox?

enter image description here

Come si fa uno sviluppatore crea un'applicazione NodeJS monitorare il traffico di rete dall'applicazione nodejs ad un HTTP/HTTPS server? Ad esempio come eseguire il debug del seguente traffico di rete?

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

Il mio codice sta facendo una chiamata a un server HTTPS di terze parti, quindi sono in grado di utilizzare wireshark o strumenti di packet sniffing simili.

Per ulteriori informazioni, il problema che sto tentando di esaminare è here.

EDIT:

Qui ci sono domande simili che chiedono come fare la stessa cosa in altre lingue:

+0

quello di cui hai bisogno è il middleware. espresso viene in mente. si potrebbe anche sostituire globalmente 'require ('http');' con qualcosa come 'require ('./ http-log');', dove il file http-log è un semplice wrapper attorno ai metodi _exports_ del modulo http esistente che registra tali dettagli vincolando eventi extra mentre restituisce l'originale. – dandavis

+0

Vuoi esaminare lo stato di una singola 'richiesta' o di una pagina html con le sue risorse dipendenti? –

+0

@arturgrzesiak Voglio solo indagare su una singola richiesta. –

risposta

0

io so che non è carina, ma puoi sempre inviare il contenuto delle intestazioni di risposta sulla console all'interno della tua richiesta di chiamata:

La tua domanda originale, tuttavia, non riguardava problemi con il lato server ma piuttosto un problema con il codice del nodo stesso, quindi questo non sarebbe di grande utilità qui.

+0

Sfortunatamente solo il 'req.on ('error', function (e) {} 'il richiamo viene eseguito e non il' https.request (options, function (res) {} ' –

+0

@ChrisSnow Se c'è un tale errore non c'è niente da vedere comunque. – HeadCode

5

Utilizzare lo strumento di debug HTTP esterno. Le opzioni includono:

Y Accendi uno di questi, indica loro dove instradare il traffico e punta la tua applicazione su quel proxy di debug invece del vero server.

1

Sono giunto a questa domanda cercando qualcosa di simile ma sto usando il pacchetto request. In questo caso, tutto quello che dovete fare è includere questa riga nel codice:

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

(accertarsi che sia installato il pacchetto di richiesta-debug)

Questo stamperà tutti i dati di richiesta alla console.

0

Se si utilizza una versione nodo prima del nodo 8, io sono un grande fan di nodo-ispettore:

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

credo che abbia tutto quello che stai cercando: enter image description here

+0

Manca la scheda di rete – jamrizzi

+0

Non sono sicuro di cosa intendi @jamrizzi. Stai dicendo che a node-inspector manca la scheda di rete? Dopo averlo installato ed eseguito 'node-debug app.js', ho sicuramente avere una scheda di rete – pulekies

+0

Hmmm, ero confuso nodo - -inspect non mi dà una scheda di rete. – jamrizzi

Problemi correlati