ho trovato una diversa soluzione un po 'del mio problema per quanto riguarda questo contesto. Il pensiero vale la pena condividere.
La maggior parte dell'esempio crea readStreams
dal file. Ma nel mio caso è necessario creare readStream
dalla stringa JSON
proveniente da un pool di messaggi.
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 = richiesta (...) il ("fine", la funzione () {/ * CALLBACK * /}). Pipe (...); ' –
per me l'evento 'close', piuttosto che 'end' funziona' r.on ('close'), function() {... }) ' – Judson
L'evento 'end' è ora 'finish' Eventi pipe: http://nodejs.org/api/stream.html#stream_event_finish –