2014-06-26 10 views
20

Ich versuche, node.js zu lernen.Ist es möglich, eine Verbindung zu console.log herzustellen?

Ich versuche, Ströme und Rohrleitungen zu verstehen.

Ist es möglich, die Antwort der HTTP-Anfrage zu console.log zu pipen?

Ich weiß, wie man dies tut, indem man einen Handler an das Datenereignis bindet, aber ich bin mehr daran interessiert, es an die Konsole zu streamen.

http.get(url, function(response) { 
    response.pipe(console.log); 
    response.on('end', function() { 
    console.log('finished'); 
    }); 
}); 

Dank

Antwort

42

console.log ist nur eine Funktion mit einem Ausgang, die Rohre den Prozessstrom.

Beachten Sie, dass das Folgende Beispielcode

console.log = function(d) { 
    process.stdout.write(d + '\n'); 
}; 

Piping zu process.stdout tut genau das Gleiche.

http.get(url, function(response) { 
    response.pipe(process.stdout); 
    response.on('end', function() { 
    console.log('finished'); 
    }); 
}); 

Hinweis Sie auch

process.stdout.write(response); 
+1

dies genau tun kann, ist, was ich wissen wollte, dank – spinners

+4

FWIW, ist process.stdout ein beschreibbarer Strom und als solche emittiert nicht ‚Ende‘ Weil darüber hinaus von seinem besonderen Status gibt es kein 'Ende' eitgher. – Blago

+0

Dies funktioniert nicht für mich '' 'UnhandledPromiseRejectionWarning: Unbehandelte Versprechen Ablehnung (Ablehnung ID: 1): TypeError: Ungültige Daten, Chunk muss eine Zeichenfolge oder ein Puffer sein, nicht Objekt' '' – Tyguy7

Verwandte Themen