NestJS 开发模式 适用于模块化 TypeScript 后端的生产级 NestJS 模式。 何时启用 构建 NestJS API 或服务时 组织模块、控制器和提供者时 添加 DTO 验证、守卫、拦截器或异常过滤器时 配置环境感知设置和数据库集成时 测试 NestJS 单元或 HTTP 端点时 项目结构 将领域代码保留在功能模块内。 将跨切面的过滤器、装饰器、守卫和拦截器放在 中。 将 DTO 保留在所属模块附近。 启动与全局验证 始终在公共 API 上启用 和 。 优先使用一个全局验证管道,而不是为每个路由重复验证配置。 模块、控制器和提供者 控制器应保持精简:解析 HTTP 输入、调用提供者、返回响应 DTO。 将业务逻辑放在可注入的服务中,而不是控制器中。 仅导出其他模块真正需要的提供者。 DTO 与验证 使用 验证每个请求 DTO。 使用专用的响应 DTO 或序列化器,而不是直接返回 ORM 实体。 避免泄露内部字段,如密码哈希、令牌或审计列。 认证、守卫与请求上下文 保持认证策略和守卫的模块局部性,除非它们确实是共享的。 在守卫中编码粗粒度的访问规则,然后在服务中进行资源特定的授权。 对经过认证的请求对象,优先使用显式的请求类型。 异常过滤器与错误格式 在整个 API 中保持一致的错误封装格式。 对预期的客户端错误抛出框架异常;集中记录并包装意外的失败。 配置与环境验…