Да, это возможно, легко и удобно. Ниже приведен потоковый поток данных из одного источника в несколько источников. Он показывает вам одну анонимную функцию обратного вызова, которая получает помещается на цикл событий, который содержит функцию записи потоков, которые выполняют фактическую работу записи:
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);
});
Простой способ заключается в использовании .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);
.pipe()
позволяет делать классные вещи, как цепочки трубопроводов в будущем для манипулирования трубопровода, очень схожа с концепцией Unix-то вроде du . | sort -rn | less
, где вы можете использовать несколько труб для обработчиков.
Имейте первого обработчика, потребляющего его как поток, а затем передайте его второму обработчику. –
@BenjaminGruenbaum или создать «тройник», который поддерживает несколько выходных потоков и просто записывает данные из входного потока на каждый вывод. – SheetJS
Подождите, nvm. Вы можете транслировать потоки на столько мест, сколько хотите - это просто. –