Node.js 中 stream.pipeline 的错误处理与资源清理实践
在 Node.js 里用 stream.pipeline 串联多个流时,很多人只关注数据能不能正常流过去,等到线上出现文件描述符泄漏或者进程卡住才发现错误处理没写对。典型场景是文件上传后转码再写入磁盘,或者从数据库导出 CSV 再压缩响应给客户端。中途任何一环报错,如果没正确销毁上下游流,残留的句柄会越积越多,最终触发 EMFILE 或内存上涨。pipeline 相比 pipe 的核心优势就是它会自动销毁所有流并在回调里抛出第一个错误,但前提是你得用对回调形式,并且理解 destroy 的传播行为。下面从实...