Вопрос проверяет знание потоков в Node.js и их различных типов для эффективной обработки данных.
Потоки (Streams) позволяют обрабатывать данные по частям, экономя память. Основные типы: Readable (чтение), Writable (запись), Duplex (чтение и запись), Transform (изменение данных при передаче).
Streams — это абстракция для работы с данными, которые можно обрабатывать по частям.
Типы потоков:
Readable Stream — для чтения данных
Пример: чтение файла, HTTP запрос
Методы: pipe(), read()
Writable Stream — для записи данных
Пример: запись в файл, HTTP ответ
Методы: write(), end()
Duplex Stream — чтение и запись
Пример: TCP сокет
Наследует от Readable и Writable
Transform Stream — преобразование данных
Пример: сжатие, шифрование
Наследует от Duplex
const fs = require('fs');
// Readable stream
const readable = fs.createReadStream('input.txt');
// Transform stream (gzip compression)
const zlib = require('zlib');
const transform = zlib.createGzip();
// Writable stream
const writable = fs.createWriteStream('output.txt.gz');
// Конвейер обработки
readable.pipe(transform).pipe(writable);Преимущества потоков:
Экономия памяти
Уменьшение времени обработки
Возможность обработки больших файлов