2016-11-13 4 views
2

Vielen Dank, dass Sie sich die Zeit genommen haben, meine Frage zu lesen!Code ausführen, wenn die Serverantwort beendet ist - Node.js

Ich bin neu bei Node.js und ich versuche herauszufinden, wie die Elemente eines Arrays auf die Konsole ausgegeben werden, wenn eine Serverantwort zu Ende gegangen ist.

Dies ist der Code:

var http = require('http'); 

http.get(process.argv[2], function (response) { 
    response = response.setEncoding('utf8'); 
    var data = []; 

    response.on('data', function (collect) { 
     data.push(collect); 
    }); 

    response.on('error', function(err) { 
     console.log(err); 
    }); 

}); 

Wo und wie verwende ich Response.End Ereignis alle Elemente des data Array auszudrucken mit console.log() Methode?

Vielen Dank für Ihre Hilfe!

+0

Sie würden es nur hinzufügen, eine beliebige Stelle innerhalb der Callback, haben sie versucht, etwas? – adeneo

+0

Ich habe versucht, 'Response.End (function() { for (var i = 0; i

+1

Verwenden Sie 'response.on ('end',', auch weil die Chunks (Ihr Collect) eine Zeichenkette ist, die es tun würde, 'data + = collect' anstelle von' push' zu nehmen. Dies setzt voraus, dass Sie Daten als Zeichenkette 'var data definieren = ''; ' – Molda

Antwort

1

Die Antwort starrte mich direkt ins Gesicht! Ich musste nicht die response.end Methode aufrufen, stattdessen musste ich die response.on Methode aufrufen und es das end Ereignis übergeben.

Hier ist, was für mich gearbeitet:

response.on('end',function(){ 
     for (var i = 0; i < data.length; i++) { 
      console.log(data[i]); 
     } 
    }); 

Voll Code:

var http = require('http'); 

http.get(process.argv[2], function (response) { 
    response = response.setEncoding('utf8'); 
    var data = []; 

    response.on('data', function (collect) { 
     data.push(collect); 
    }); 

    response.on('error', function(err) { 
     console.log(err); 
    }); 

    response.on('end',function(){ 
     for (var i = 0; i < data.length; i++) { 
      console.log(data[i]); 
     } 
    }); 

}); 
Verwandte Themen