Ich bin eine Datei durch eine Duplex-Zeichenfolge (mit freundlicher Genehmigung von through) und ich habe Probleme beim Drucken von Informationen zu stdout
und Schreiben in die Datei. Der eine oder andere funktioniert gut.Pipe zu stdout und beschreibbaren Stream
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)
Ich gehe davon aus das ist, weil process.stdout
ein beschreibbares Strom ist, aber ich bin nicht sicher, wie das zu tun, was ich will (i {end: false}
ohne Erfolg versucht haben, vorbei).
Noch kämpfen, meinen Kopf um Streams zu wickeln, so verzeiht mir, wenn ich etwas offensichtlich verpasst haben:)
Danke, das funktioniert wie ein Charme. Irgendeine Erklärung, warum diese so getrennt werden müssen? –
Pipes geben ihr Ziel zurück, nicht ihre Quelle. und du willst nur einmal in einen Stream pipen. –