Ответ
Да, активно использовал Stream API для обработки больших файлов и сетевых данных. Основные типы стримов: Readable, Writable, Duplex и Transform. Например, для обработки логов большого размера я использовал fs.createReadStream в паре с Transform стримом для парсинга и Writable для записи агрегированных результатов.
const fs = require('fs');
const { Transform } = require('stream');
const logParser = new Transform({
transform(chunk, encoding, callback) {
const lines = chunk.toString().split('n');
const errors = lines.filter(line => line.includes('ERROR'));
this.push(errors.join('n'));
callback();
}
});
fs.createReadStream('app.log')
.pipe(logParser)
.pipe(fs.createWriteStream('errors.log'));
Также использовал pipeline для безопасного соединения стримов с автоматической обработкой ошибок и очисткой ресурсов. Stream API критически важен для эффективной работы с I/O в Node.js, так как позволяет не блокировать Event Loop и экономить память.