node.js - readstream - Tubería a stdout y secuencia de escritura
nodejs print console (1)
Estoy canalizando un archivo a través de una cadena dúplex (cortesía de a through ) y tengo problemas para imprimir la información en la stdout
estándar y escribir en el archivo. Uno u otro funciona bien.
var fs = require(''fs'');
var path = require(''path'');
var through = require(''through''); // easy duplexing, i''m young
catify = new through(function(data){
this.queue(data.toString().replace(/(woof)/gi, ''meow''));
});
var reader = fs.createReadStream(''dogDiary.txt''); // woof woof etc.
var writer = fs.createWriteStream(path.normalize(''generated/catDiary.txt'')); // meow meow etc.
// yay!
reader.pipe(catify).pipe(writer)
// blank file. T_T
reader.pipe(catify).pipe(process.stdout).pipe(writer)
Supongo que esto se debe a que process.stdout
es una secuencia de escritura, pero no estoy seguro de cómo hacer lo que quiero (he intentado pasar {end: false}
en vano).
Todavía luchando por envolver mi cabeza alrededor de las corrientes, así que perdóname si me he perdido algo obvio:)
Creo que lo que quieres es:
reader.pipe(catify)
catify.pipe(writer)
catify.pipe(process.stdout)
Estos debían estar separados porque las tuberías devuelven sus destinos y no su origen.