2016-05-31 12 views
0

Ich möchte Inhalt in Datei pipe. Hier ist, was ich geschrieben habe:NodeJS Rohrleitungen von lesbar zu Datei WriteStream funktioniert nicht

var fs = require('fs'); 
var Readable = require('stream').Readable; 

var ws = fs.createWriteStream('xfiles.txt'); 
var rs = new Readable; 

ws.on('finish', function() { 
    console.log('Written ' + ws.bytesWritten + ' ' + ws.path); 
}); 

rs.push('foo bar baz'); 
rs.push('foo bar baz'); 
rs.push('foo bar baz'); 
rs.push(null); 

rs.pipe(ws); 
ws.end(); 

ich die xfiles.txt zu erwarten haben 3 Zeilen 'foo bar baz'. Aber die Ausgabe sagt mir, dass 0 Bytes geschrieben wurden, und wenn ich xfiles.txt überprüfe, ist es leer.

Was vermisse ich?

EDIT

Sorry, fand die Antwort direkt nach dieser Frage veröffentlichen. Die Antwort in this SO question löste mein Problem.

Antwort

0

Die Antwort wurde direkt nach dem Verfassen dieser Frage gefunden. This SO question haben die Antwort, die auch mein Problem gelöst hat.

Was ich tun muss, ist ws.end() aufrufen, nachdem der Stream seine asynchrone Operation abgeschlossen ist. Also muss ich es in einen Rückruf setzen:

ws.on('end', function() { 
    ws.end(); 
}); 
Verwandte Themen