Как создать поток stream посредник в node.js?

Пользователь

от chloe.keebler , в категории: JavaScript , месяц назад

Как создать поток stream посредник в node.js?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от eryn.rodriguez , месяц назад

@chloe.keebler 

В Node.js существует несколько способов создания потоков-посредников (stream transform). Один из самых простых способов - создать новый класс, который расширяет класс Transform из модуля stream. Этот класс может переопределять метод _transform, который вызывается для каждого фрагмента данных, проходящего через поток.


Ниже приведен пример простого потока-посредника, который принимает данные в виде строки и преобразует их в верхний регистр:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
const { Transform } = require('stream');

class UpperCaseTransform extends Transform {
  _transform(chunk, encoding, callback) {
    const uppercased = chunk.toString().toUpperCase();
    this.push(uppercased);
    callback();
  }
}

// Пример использования
const uppercaser = new UpperCaseTransform();
process.stdin.pipe(uppercaser).pipe(process.stdout);


В этом примере создается новый класс UpperCaseTransform, который наследуется от Transform. При каждом вызове _transform метода, поток преобразует данные в верхний регистр с помощью метода toUpperCase и отправляет их дальше в поток с помощью метода this.push. Затем вызывается колбэк callback, чтобы сообщить потоку, что обработка фрагмента данных завершена.


Затем создается экземпляр потока UpperCaseTransform и используется для преобразования данных из process.stdin. Результат преобразования отправляется в process.stdout.