SuperAPI AI 工具集

nestjs-patterns

编程与开发

查看项目

更新于 10-15 08:38

技能介绍

用途

NestJS 开发模式(NestJS Development Patterns)是一套面向生产级 NestJS 模块化 TypeScript 后端的架构实践集合。它用于在构建 NestJS API 或服务时提供结构化的组织方式与编码约定。

主要能力

该技能覆盖以下方面:

  • 项目结构:将领域代码放在功能模块内,跨切面的过滤器、装饰器、守卫和拦截器放在 common/ 目录,DTO 靠近所属模块。
  • 启动与全局校验:通过 NestFactory 创建应用,配置全局 ValidationPipe(whitelist、forbidNonWhitelisted、transform 等选项)、全局拦截器与全局异常过滤器。
  • 模块、控制器与提供者:控制器保持轻量,只解析 HTTP 输入、调用提供者、返回响应 DTO;业务逻辑放在可注入服务中;仅导出其他模块真正需要的提供者。
  • DTO 与校验:使用 class-validator 校验每个请求 DTO,使用专用响应 DTO 或序列化器,避免直接返回 ORM 实体,防止泄露密码哈希、令牌或审计字段等内部字段。
  • 认证、守卫与请求上下文:使用守卫与角色装饰器控制访问,认证策略与守卫保持模块本地,粗粒度访问规则放在守卫中,资源级授权放在服务中。
  • 异常过滤器与错误结构:保持整个 API 一致的错误封装,对预期客户端错误抛出框架异常,对意外失败集中记录并包装。
  • 配置与环境校验:在启动时校验环境变量而非首次请求时惰性校验,通过类型化辅助函数或配置服务访问配置,在配置工厂中区分开发/预发/生产关注点。
  • 持久化与事务:将仓储/ORM 代码放在使用领域语言的提供者之后,将事务工作流隔离在拥有工作单元的服务中,不让控制器直接协调多步写入。
  • 测试:使用 Test.createTestingModule 进行单元测试与请求级测试,复用生产环境相同的全局管道与过滤器。
  • 生产默认实践:启用结构化日志与请求关联 ID,配置无效时终止启动,异步提供者初始化配合健康检查,后台任务与事件消费者放在独立模块,对公开端点显式启用限流、认证与审计日志。

使用方式

该技能以模式与代码示例的形式提供指导,包含项目结构示例、启动引导代码、模块/控制器/服务示例、DTO 校验示例、守卫与角色装饰器示例、异常过滤器示例、配置模块示例以及测试示例。使用时按照这些模式组织 NestJS 项目代码。

适用场景

  • 构建 NestJS API 或服务
  • 组织模块、控制器与提供者结构
  • 添加 DTO 校验、守卫、拦截器或异常过滤器
  • 配置环境相关设置与数据库集成
  • 测试 NestJS 单元或 HTTP 端点

限制

资料未提供该技能的安装命令、收费方式、价格、平台支持范围或具体效果说明,这些信息暂未提供。