Node.js 流式处理
学习如何使用 Node.js Stream 处理大数据,实现高效的数据流读写与转换。 · 难度:入门 · +15XP
什么是 Stream?
Stream(流)是 Node.js 中处理流式数据的抽象接口,它允许你以小块的方式读取或写入数据,而不必将整个数据加载到内存中。这对于处理大文件、网络响应或实时数据非常有用。
流的四种类型
| 类型 | 说明 | 示例 |
|---|---|---|
| Readable | 可读流 | fs.createReadStream |
| Writable | 可写流 | fs.createWriteStream |
| Transform | 转换流 | zlib.createGzip |
| Duplex | 双工流 | net.Socket |
代码示例:文件复制
const fs = require('fs');
const readStream = fs.createReadStream('source.txt');
const writeStream = fs.createWriteStream('destination.txt');
readStream.pipe(writeStream);
readStream.on('end', () => {
console.log('复制完成');
});
pipe() 方法自动处理背压(backpressure),确保数据不会被淹没。
练习提示
尝试修改上面的代码,使用 zlib.createGzip() 在管道中添加压缩步骤,将文件压缩后写入新文件。注意需要引入 zlib 模块。