SuperAPI AI 工具集

nodejs-best-practices

部署与运维

查看项目

更新于 10-15 23:33

技能介绍

用途:用于审查 Node.js 服务的生产就绪度,评估日志与可观测性策略、审计安全配置(密钥、响应头、限流)、设计启动与关闭生命周期。它补充 nodejs 技能(后者覆盖运行时与模块语法),不适用于 Express 路由设计、npm 依赖管理或 TypeScript 配置。

主要能力与关键模式:结构化日志,使用 pino 或 winston 输出 JSON,包含 level、msg、time、requestId 等字段,生产服务禁止 console.log;优雅关闭,在 SIGTERM/SIGINT 时先停止接收新连接、排空在途请求、关闭数据库连接池再退出;启动时用 zod 或 joi 校验必需环境变量,缺失即快速失败;安全响应头,Express/Fastify 用 helmet,Hono 用 hono/secure-headers,原生 http 手动设置,至少包含 Content-Security-Policy、Strict-Transport-Security、X-Content-Type-Options、X-Frame-Options;错误传播,异步路径必须处理 rejection,不得静默吞掉;请求路径禁止同步 I/O,改用异步等价方法;CPU 密集任务使用 cluster 或 Worker Threads,多核机器可用 pm2 start app.js -i max。

使用方式:按症状定位问题,如日志不可搜索改用结构化 JSON 日志,并发下响应慢排查同步 I/O,部署时请求丢失补充优雅关闭。

限制与边界:容器化部署需将 terminationGracePeriodSeconds 设为至少 30 秒;有状态连接(WebSocket、粘性会话)不适用轮询式集群,需 Redis 发布订阅或代理层粘性负载均衡;长任务应放到独立 worker 进程(BullMQ、pg-boss);长期运行进程需监控堆内存,常见泄漏源为无界缓存、事件监听器累积和闭包持有大对象。具体版本与平台细节以资料为准,其余未提供。