Node.js 流与背压:高并发下的稳健数据管道

在处理大文件或网络传输时,应优先采用流式方案,并正确应对背压。

// 文件复制:管道与背压
const fs = require('node:fs');
const rs = fs.createReadStream('in.dat');
const ws = fs.createWriteStream('out.dat');
rs.pipe(ws); // 自动处理背压

// 自行处理背压
rs.on('data', chunk => {
  const canWrite = ws.write(chunk);
  if (!canWrite) rs.pause();
});
ws.on('drain', () => rs.resume());