Sì, è possibile, facile e comune. Il seguente è un flusso di dati in pipe da una singola fonte a più fonti. Esso mostra una funzione di callback anonima che viene collocato sul ciclo di eventi che contiene i flussi funzione di scrittura che fanno il lavoro di scrittura attuale:
var fs = require('fs');
var rs1 = fs.createReadStream ('input1.txt');
var ws1 = fs.createWriteStream('output1.txt');
var ws2 = fs.createWriteStream('output2.txt');
rs1.on('data', function (data) {
console.log(data.toString('utf8'));
ws1.write('1: ' + data);
ws2.write('2: ' + data);
});
Un modo più semplice è quello di utilizzare le funzioni .pipe()
.
var fs = require('fs');
var rs1 = fs.createReadStream ('input1.txt');
var ws1 = fs.createWriteStream('output1.txt');
var ws2 = fs.createWriteStream('output2.txt');
rs1.pipe(ws1);
rs1.pipe(ws2);
Il .pipe()
permette di fare cose eccezionali come gasdotto concatenamento in futuro per la manipolazione gasdotto, molto simile al concetto unix di qualcosa come du . | sort -rn | less
dove è possibile utilizzare i tubi più per i gestori.
Il primo gestore che lo consuma è un flusso stesso, quindi lo passa al secondo gestore. –
@BenjaminGruenbaum o progettare un "tee" che mantiene più flussi di output e scrive solo i dati dal flusso di input su ogni output. – SheetJS
Aspetta, nvm. È possibile reindirizzare i flussi in tutti i posti che desideri: è semplicissimo. –