Node.js 中 fs.readFile 与 fs.createReadStream 到底该选哪个?从内存、背压和错误处理说起
在 Node.js 里读取文件时,fs.readFile 和 fs.createReadStream 是最常被拿来比较的两个 API。很多接口在本地开发时用 readFile 跑得好好的,一上线遇到几十 MB 的日志文件或用户上传的压缩包,进程内存就迅速上涨,甚至直接 OOM。原因并不复杂:readFile 会把整个文件一次性读进内存再回调给你,而 createReadStream 基于流和缓冲区逐块读取,天然带背压控制。但流也不是银弹,错误处理、文件描述符关闭、编码转换都有坑。这篇文章从实际代码出发,聊清...