能在服务器端运行 JavaScript 的开放源代码、跨平台 JavaScript 运行环境
处理大文件上传、日志转储或者数据库导出时,很多人会用 Node.js 的 stream 把数据从一端搬到另一端。stream.pipeline 因为自带错误传播...
线上一个日志聚合服务在运行几天后 RSS 内存会涨到 2GB 以上,最终被 PM2 重启。服务本身不复杂:从 Kafka 消费日志消息,做一点字段清洗,然后写到...
在 Node.js 里写 CLI 工具或处理管道输出时,偶尔会看到 Error: write EPIPE 导致进程直接崩溃。EPIPE 表示管道的另一端已经关闭...
在 Node.js 里写异步逻辑时,process.nextTick 和 setImmediate 看起来都能把任务推迟执行,但它们在事件循环中的位置完全不同,...
线上一个用 Node.js 写的聚合接口最近频繁超时,报错信息里出现 TimeoutError: ResourceRequest timed out,重启后能撑...
线上有个后台服务,偶尔会收到运营同学上传的几百兆甚至上G的CSV数据包,用来做批量导入。接口刚上线时一切正常,跑了一段时间发现容器内存使用率时不时飙到90%以上...
处理文件上传时,multipart/form-data 是最常见的编码格式。在 Express 或 Koa 项目里,很多人直接引入 multer 或 formi...
线上一个用 Node.js 写的定时同步脚本跑着跑着进程就没了,日志里没有任何 uncaughtException 的记录,退出码是 0。这个脚本做的事情是从上...
在 Node.js 项目里用 async/await 写业务逻辑时,经常会遇到一个棘手的问题:某个第三方库或原生模块通过事件回调异步抛出的错误,并没有被外层的 ...
在 Node.js 服务里跑图像处理、加解密、大 JSON 解析或者复杂规则计算时,event loop 被长时间占用导致健康检查超时、其他请求排队,是线上很常...
上周排查一个日志归档脚本时遇到一个很典型的问题:用 fs.createReadStream 读取几百 MB 的日志文件,逐行解析后压缩上传,结果 end 事件根...
上周在维护一个日志聚合服务时遇到了一个有点隐蔽的问题:服务需要把多个上游节点通过 HTTP 推送过来的日志片段按来源分别追加到本地文件里,方便后续用脚本做离线分...
在 Express 项目中用 multer 处理文件上传很常见,但不少人在没有指定 storage 时默认使用 memoryStorage,于是文件先被完整读进...
用 Node.js 处理文件上传、日志转储或者数据导出时,stream.pipeline 几乎是标配。它把 readable、transform、writabl...
在 Node.js 里用 fs.writeFile 直接覆盖写文件,看起来简单,但很多线上事故就出在这里。比如进程在写入一半时被 kill、磁盘写满、或者多个请...
线上一个基于 Node.js 的日志采集服务运行几天后内存占用从 200MB 涨到 1.2GB,重启后恢复,但过几天又缓慢上升。服务逻辑不复杂:接收 HTTP ...
最近在维护一个内部素材管理系统时,遇到一个典型问题:用户上传超过 1GB 的视频文件时,服务端内存会迅速飙升,偶尔直接触发 OOM 重启。排查后发现,问题出在早...
在 Node.js 服务端处理文件上传时,multipart/form-data 是最常见的请求格式。很多项目直接用 multer 或 busboy 就能跑通,...
在 Node.js 里处理文件上传,很多人第一次用原生 http 模块或者 Express 的 multer 时都会遇到一个诡异现象:接口返回成功,文件也生成了...
在 Node.js 服务里用 AsyncLocalStorage 给每个请求挂 traceId,日志里带上它,排查线上问题时能一把梭。但某次接入一个用 Prom...