能在服务器端运行 JavaScript 的开放源代码、跨平台 JavaScript 运行环境
在使用 Node.js 开发前端项目时,我们经常会碰到一个看起来很简单,却隐藏着不少技术细节的命令。
在 Node.js 里写图片处理、加密解密、大 JSON 解析这类 CPU 密集型任务时,最常遇到的坑就是同步计算把事件循环卡死——接口响应变慢、定时器不准、W...
在 Node.js 里处理文件上传、日志转储或代理转发时,我们经常把多个流串起来用,比如把 HTTP 请求体经过 gzip 压缩后写入文件。stream.pip...
线上一个用 Node.js 写的日志聚合服务突然内存暴涨,重启后几个小时又慢慢爬升到 2GB 以上,最终被 OOM Killer 干掉。这个服务逻辑不复杂:从消...
在 Node.js 里写异步代码时,经常需要控制回调的执行时机。process.nextTick 和 setImmediate 看起来都能把任务推迟到当前操作之...
最近在做一个内部资料库的上传功能,用户经常传几百 MB 的 PDF 和视频文件。起初用 multer 的默认配置,全部收在内存里再写盘,结果 Node 进程内存...
处理大文件下载或实时数据推送时,我们常用 Node.js 的流式响应替代一次性读取。但一个容易被忽略的细节是:当客户端提前断开连接(比如用户关闭页面、网络中断)...
线上一个用 Node.js 写的图片处理服务最近频繁触发 OOM,进程每隔几小时就被系统 kill 掉。服务本身逻辑不复杂:接收上传的图片,交给 worker_...
处理大文件上传或日志聚合时,很多人会用 fs.createReadStream 配合 pipe 往网络或另一个流里写。但 pipe 不是万能的——当可写流处理速...
最近在排查一个日志写入顺序的问题时,发现代码里混用了 process.nextTick 和 setImmediate,结果输出顺序和预期完全相反。这个现象在异步...
线上服务每隔一段时间就会出现接口响应变慢,监控里 event loop lag 飙升到几百毫秒,但 CPU 使用率并没有打满。排查下来发现是一个计算 PDF 页...
在 Node.js 服务里跑图片压缩、PDF 解析或者加解密逻辑时,经常遇到一个尴尬现象:明明接口已经做了异步封装,但某个请求一进来,整个进程的其他请求全卡住,...
文件上传看起来只是前端一个 <input type="file"> 加后端一个接口,但真正在 Node.js 里接收 multipart/form-data 时...
线上一个日志分析服务突然 OOM 重启,排查后发现是用 fs.readFile 读取了一个 1.2GB 的日志文件。这个文件在本地测试时只有几十 MB,生产环境...
最近在做一个后台管理系统的文件上传接口,前端用 axios 发 multipart/form-data 请求,Node.js 这边用 Koa 接。测试时发现一个...
在日志聚合服务或批量任务处理场景里,经常需要多个异步操作往同一个文件追加数据。最近排查一个 Node.js 服务时遇到一个问题:定时任务并发写入同一个 JSON...
写 Node.js 的时候经常遇到这样的场景:在一个 I/O 回调里同时调用 process.nextTick 和 setImmediate,打印顺序有时候和预...
写 Node.js 的时候经常遇到这样的场景:在同一个同步代码块里同时调用 process.nextTick、setImmediate 和 setTimeout...
在 Node.js 里写 HTTP 服务时,很多人会在进程收到 SIGTERM 后直接调用 server.close() 就认为完成了优雅关闭。实际线上环境里,...
在 Node.js 里处理文件上传、日志转发或者数据库导出时,流式管道几乎是绕不开的写法。很多人从 readable.pipe(writable) 迁移到 st...