Node.js 中 stream.pipeline 的错误处理陷阱:为什么你的文件上传偶尔会卡死
在 Node.js 里处理文件上传、日志转发或者 CSV 解析时,stream.pipeline 几乎是最常用的工具。它帮我们把可读流、转换流、可写流串起来,并自动处理背压和资源销毁。但我在维护一个网关服务时遇到过一个偶发问题:用户上传大文件过程中断开连接,服务端的处理链路偶尔会挂起,既不报错也不释放文件句柄,直到进程内存慢慢涨上去。排查后发现,问题出在对 pipeline 回调错误的忽略,以及转换流内部没有正确传播 destroy 事件。常见的错误写法是在回调里只打印 error,却没有意识到上游流可能仍...