he encontrado una solución diferente un poco de mi problema con respecto a este contexto. Pensamiento que vale la pena compartir
La mayor parte del ejemplo crea readStreams
del archivo. Pero en mi caso readStream
tiene que crearse a partir del JSON
cadena procedente de un grupo de mensajes.
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 = petición (...) en ("fin", la función () {/ * CALLBACK * /}). Pipe (...); ' –
para mí el evento 'close', en lugar de 'end' funciona' r.on ('close'), function() {... }) ' – Judson
El evento 'end' ahora es 'finalizado' Eventos de canalizaciones: http://nodejs.org/api/stream.html#stream_event_finish –