#Node.js
共 35 篇文章
EventEmitter 的 async 监听器报错,try/catch 接不住
emit返回布尔值,不会等待async监听器。为自己的实例安排拒绝入口和同步error处理,保留同步抛错区别,任务完成需明确Promise接口。
BullMQ CPU 密集任务 stalled:事件循环阻塞了锁续期
确认同步CPU阻塞后,将计算放入外部processor,保留锁恢复和幂等。异步等待偶发stalled仍需另查连接与进程,不用无限续锁掩盖故障。
fetch 先 text 再 json 报 Body is unusable:正文已经被读取
text和json消费同一个Response正文。检查日志与reader锁,只读一次再解析,区分已消费、被锁及空正文解析错误,保护日志内容。
Node.js fetch 发送流时报 duplex option is required
流式请求正文需把duplex字符串与body一起传给实际fetch入口。核对ReadableStream类型和封装选项,再走原上传流程验证内容与结果。
Playwright POST 崩溃
Playwright POST 遇到提前 413、429 后报 write ECONNRESET,try/catch 没接住。核对 APIRequestContext socket 错误路径和正式 1.63.0 修复。
pnpm filter 没有生效
pnpm 12 的 updateConfig 返回 filter,安装却覆盖整个工作区。检查 12.11.2 修复、钩子加载与命令行优先级,保留 sparse checkout 的项目范围。
npm EOVERRIDE:override 与直接依赖的版本写法不一致
固定版本与包含它的范围仍可能触发EOVERRIDE。比较根直接依赖与覆盖的原始spec,选择一致写法或引用,保留覆盖目的及锁文件检查。
Vite 仍用旧配置
连续改 vite.config.ts 后,日志有两次变化却只完成一次重启,代理仍用旧配置。检查重启窗口与 Vite 8.3.4 的待处理队列。
Node.js 还有 pending Promise,进程却退出了
pending Promise本身不会维持Node运行。检查完成生产方、循环等待与资源unref,修正真实任务生命周期,并区分ESM顶层await的退出行为。
uuid/v1 报 ERR_PACKAGE_PATH_NOT_EXPORTED:改用包入口的命名导出
uuid 8 移除旧深层入口后,应从 uuid 包入口导入对应函数;核对真正的调用方和依赖版本,保留算法,并区分 uuid 12 起的 ESM 范围。
npm 全局安装 EACCES:检查 prefix、权限与 PATH
遇到 /usr/local/lib/node_modules 权限错误,先确认 node/npm、prefix 与失败目录,再采用版本管理器或用户目录并核对 PATH。
PostgreSQL 连接数耗尽:连接池只有 10,为什么仍报 too many clients
连接池 max 只约束一个池。统计数据库全局连接,计算应用实例的连接预算,检查长事务及连接是否归还,再决定怎样调整容量。
Linux 文件监听报 ENOSPC
Linux 开发服务或编辑器报文件监听 ENOSPC。定位同一用户占用的 inotify 监听项,缩小监听范围,再按需调整上限;说明远端、容器构建、旧版 Backstage 的适用条件及回退。
Node.js execFile 报 spawn ENOENT:路径要放对参数位置
Node.js execFile 调用项目内程序报 spawn ENOENT,核对 options 对象、文件路径与真实 cwd,再检查 PATH 和部署目录,保留无 shell 的参数传递。
npm 编译原生模块报 No module named distutils:旧 node-gyp 遇到 Python 3.12
npm 编译原生模块遇到 distutils 缺失时,检查实际 node-gyp 与 Python 路径。Python 3.12 需兼容构建工具,更新被调用的依赖链,保留临时环境与原生 ABI 验收边界。


