Ich mache node.js Übungen von nodeschool.io (learnyounode). Eine der Übungen beinhaltet das Erstellen eines http-Servers, der eine Textdatei aus einem lesbaren Dateistrom bereitstellt. Ich bin sehr neu in der asynchronen Programmierung. Die Lösung kam ich mit ist:Node.js - einen lesbaren Stream an HTTP-Antwort leiten
var http = require('http');
var fs = require('fs');
var readable = fs.createReadStream(process.argv[3]);
var server = http.createServer(function(request, response) {
readable.on('data', function(chunk) {
response.write(chunk);
})
});
server.listen(process.argv[2]);
Dies funktioniert jedoch die offizielle Lösung, die ein Rohr statt auf Daten Ereignis verwendet:
var http = require('http')
var fs = require('fs')
var server = http.createServer(function (req, res) {
res.writeHead(200, { 'content-type': 'text/plain' })
fs.createReadStream(process.argv[3]).pipe(res);
})
server.listen(Number(process.argv[2]))
Was sind die (potentielle) Unterschiede und/oder Vorteile So oder so?