ich eine etwas andere Lösung meines Problems zu diesem Zusammenhang gefunden. Gedanken wert, geteilt zu werden.
Die meisten der Beispiel erstellen readStreams
aus Datei. Aber in meinem Fall muss readStream
von JSON
String aus einem Nachrichtenpool erstellt werden.
var jsonStream = through2.obj(function(chunk, encoding, callback) {
this.push(JSON.stringify(chunk, null, 4) + '\n');
callback();
});
// message.vale --> valeu/text to write in write.txt
jsonStream.write(JSON.parse(message.value));
var writeStream = sftp.createWriteStream("/path/to/write/write.txt");
//"close" event didn't work for me!
writeStream.on('close', function() {
console.log("- done!");
sftp.end();
}
);
//"finish" event didn't work for me either!
writeStream.on('close', function() {
console.log("- done!"
sftp.end();
}
);
// finally this worked for me!
jsonStream.on('data', function(data) {
var toString = Object.prototype.toString.call(data);
console.log('type of data:', toString);
console.log("- file transferred");
});
jsonStream.pipe(writeStream);
'var r = Anfrage (...) auf ("end", Funktion () {/ * CALLBACK * /}). Pipe (...); ' –
für mich ist das Event 'close', statt 'end'' r.on ('close'), function() {... }) ' – Judson
Das Ereignis 'end' ist jetzt 'finish' Pipe-Ereignisse: http://nodejs.org/api/stream.html#stream_event_finish –