SuperAPI AI 工具集

nodejs-best-practices

编程与开发

查看项目

更新于 10-15 22:33

技能介绍

用途:这是一份 Node.js 开发决策指南,帮助开发者根据项目情境做出选择,而非背诵固定代码模板。资料强调在需求不明确时应先向用户询问偏好,不要每次都套用同一方案。

主要能力:

  1. 框架选择。提供决策树:边缘/无服务器(Cloudflare、Vercel)倾向 Hono;高性能 API 倾向 Fastify;企业级与团队熟悉度倾向 NestJS;遗留、稳定、生态最大倾向 Express;全栈配前端可用 Next.js API Routes 或 tRPC。选择时需考虑部署目标、冷启动是否关键、团队既有经验与遗留代码。
  2. 运行时与模块系统。Node.js 24+ 默认启用类型剥离,可直接运行 node file.ts,仅支持可擦除语法,枚举、运行时命名空间、参数属性会报错,需改用 tsx;新项目建议 ESM,旧代码可用 CommonJS。运行时可在 Node.js、Bun、Deno 间按生态、性能与安全需求取舍。
  3. 架构原则。建议控制器/路由层、服务层、仓储层分层,以提升可测试性、可替换性与职责清晰度;小型脚本与原型可简化。
  4. 错误处理。集中式处理:自定义错误类、任意层抛出、顶层中间件捕获并格式化一致响应;客户端只返回状态码、错误码与友好信息,日志保留完整堆栈与请求上下文。资料列出 400、401、403、404、409、422、500 的适用场景。
  5. 异步模式。async/await 用于顺序操作,Promise.all 用于并行独立操作,Promise.allSettled 用于允许部分失败,Promise.race 用于超时或首个响应;CPU 密集任务应交由 worker 线程或卸载。
  6. 校验与安全。在 API 入口、数据库操作前、外部数据与环境变量处校验;库可选 Zod、Valibot、ArkType、Yup。安全清单涵盖输入校验、参数化查询、bcrypt/argon2 哈希、JWT 校验、限流、安全头、HTTPS、CORS、环境变量密钥与依赖审计。
  7. 测试与反模式。单元测试可用 node:test 或 Vitest,集成用 Supertest,端到端用 Playwright;Node.js 内置测试运行器可用 node --test。反模式包括在新边缘项目用 Express、生产中同步方法、控制器放业务逻辑、跳过校验、硬编码密钥、阻塞事件循环等。

适用场景与限制:适合 Node.js 架构选型、代码评审与工程规范制定。资料为原则性指导,未提供具体版本兼容细节、完整代码示例或性能对比数据,实际采用需结合自身负载验证;文中关于性能的说法建议自行基准测试。