SuperAPI AI 工具集

ia-nodejs-backend

编程与开发

查看项目

更新于 10-15 22:17

技能介绍

用途:为 Node.js 后端开发提供系统化实践指南,涵盖架构分层、类型规范、校验、错误处理、API 设计、异步模式、生产弹性与可观测性。

主要能力: 框架选型——边缘/无服务器选 Hono(零依赖、冷启动快),性能 API 选 Fastify(吞吐高于 Express、内置 schema 校验),企业团队选 NestJS(依赖注入、装饰器),遗留生态选 Express(中间件最丰富)。选型前需确认部署目标、冷启动需求、团队经验与现有代码库。 架构分层——src/ 下划分 routes、middleware、services、repositories、config、types;路由不含业务逻辑,服务不引用 Request/Response,仓库不抛 HTTP 错误;依赖只能由外向内(routes→services→repositories)。脚本/原型可用单文件,但需先问“是否会长大”。 TypeScript 规则——类型导入用 import type、对象形状优先 interface、以 unknown 替代 any、用 z.infer 作为类型与 schema 的唯一来源、为导出函数加返回类型;无类型包通过 declare module 声明。 校验与错误——在边界(请求入口、数据库操作前、启动时的环境变量)用 Zod 或 TypeBox 校验;自定义 AppError 层级配合集中式处理中间件,未知错误记录完整堆栈、生产返回通用 500。 API 设计——契约优先,先定义路由 schema 再写处理逻辑;用响应 schema 控制序列化,避免返回原始 ORM 对象;新增可选字段而非修改删除;统一错误信封 { error: { code, message, details? } }。 异步与弹性——按场景选 async/await、Promise.all、allSettled、race;生产禁用同步文件读取,CPU 密集任务交给 worker 线程。启动时用 Zod 校验环境变量并快速失败;区分 /health(浅层)与 /ready(深层);用 Redis 缓存旁路与 LRU、@fastify/under-pressure 卸载、opossum 熔断。 可观测性——先用 pino 结构化日志与关联 ID,再用 prom-client 采集 RED 指标、OpenTelemetry 采集分布式追踪;追踪需在应用导入前初始化并验证确实生效;按症状而非原因告警。 纪律与验证——保持简单、最小改动、不做临时绕行;抽象出现三次以上再提取;若需绕过 TypeScript(as any、@ts-ignore)视为设计异味。提交前 tsc --noEmit 与 npm test 必须零错误。

限制:资料未提供具体安装命令、版本号、价格或平台信息;部分框架特定 API 建议实现前通过 Context7 查询当前文档,避免训练数据滞后。