能在服务器端运行 JavaScript 的开放源代码、跨平台 JavaScript 运行环境
线上服务里有个接口需要把用户上传的 CSV 转成 JSON 并做一轮字段校验,文件不大时一切正常,但遇到几万行的文件,整个 Node 进程会卡住一两秒,健康检查...
线上服务有个接口偶尔会卡住整个进程,日志里看不出异常,监控显示 CPU 单核跑满。排查后发现是某个请求触发了一段图片哈希计算,纯 JavaScript 实现,几...
在 Node.js 服务端开发中,调用外部 HTTP 接口、查询数据库或执行耗时计算时,如果依赖方响应缓慢,很容易拖垮整个请求链路。很多项目最初只是简单设置一个...
线上一个用 Node.js 写的图片处理服务,最近加了一个生成缩略图的功能,用的是 sharp 库。本地跑得好好的,部署到一台 2 核的容器上之后,调用缩略图接...
写 Node.js 服务时经常要读文件,很多人习惯性用 fs.readFile,因为 API 简单,拿到就是完整的 Buffer 或字符串。但上线后遇到大文件或...
在 Node.js 服务中直接监听 req.on('data') 来收集上传文件内容,是很多人在处理 multipart/form-data 或原始二进制流时最...
在 Node.js 里处理文件上传、日志转发或者数据转换时,经常会把多个流串起来用,比如读文件、gzip 压缩、再写到另一个文件。很多人习惯用 pipe() 把...
线上一个用 Node.js 写的报表导入服务最近频繁被 OOM 杀掉,它的职责很简单:接收上传的 CSV 文件,按行解析后批量写进数据库。文件本身不大,通常十几...
在 Node.js 里写异步代码时,process.nextTick 和 setImmediate 经常被混用,很多人觉得它们都是“下一轮事件循环再执行”,随便...
在处理大文件上传、日志转发或数据库导出这类场景时,Node.js 的 stream 管道经常被用来避免一次性把数据读进内存。但很多人只记得 pipeline()...
线上有个图片处理服务,用户上传图片后服务端要做压缩、裁剪、加水印,接口响应时间一直在 800ms 到 2s 之间抖动。起初怀疑是磁盘 IO 或者第三方存储慢,加...
线上服务偶发 502,Nginx 错误日志里出现 upstream prematurely closed connection while reading re...
线上一个日志采集脚本偶尔出现时间戳倒挂:同一个请求里,数据库查询结果打印在“开始查询”之前。这段代码用 async/await 写得规规矩矩,本地压测却无法复现...
最近在维护一个文件处理服务时遇到一个诡异的内存增长问题:服务运行几天后 RSS 稳定上涨,最终触发 OOM 重启。代码里用的是 Node.js 的 stream...
在 Node.js 里写异步代码时,经常有人被 process.nextTick 和 setImmediate 的执行顺序绕晕。尤其是两者都写在同一个同步代码块...
在 Node.js 里用流处理大文件或网络数据时,很多人会用 stream.pipeline 来串联多个流,因为它能自动处理背压和销毁。但实际开发中我发现一个容...
线上一个日志转发服务在运行一周后内存持续上涨,最终触发 OOM 重启。用 heap snapshot 对比发现大量 Buffer 实例堆积在可读流的内部队列中,...
在 Node.js 里处理大文件、日志转发或数据库导出时,很多人会直接用 fs.createReadStream 接上 fs.createWriteStream...
在 Node.js 服务中跑图片压缩、加解密或者大 JSON 解析时,经常遇到接口突然整体变慢、健康检查超时、WebSocket 心跳断掉,但 CPU 占用看起...
在后台管理系统里做文件上传,最容易翻车的就是大文件场景。用户传一个几百兆的视频或者几个 G 的数据库备份,如果还走 multipart/form-data 再在...