Skip to content

NestBase 项目完整文件清单

📁 项目文件结构(共 46 个文件)

🔧 根目录配置文件(10 个)

├── .env.example              # 环境变量模板
├── .gitignore                # Git 忽略配置
├── .prettierrc               # Prettier 格式化配置
├── nest-cli.json             # NestJS CLI 配置
├── package.json              # 项目依赖和脚本
├── tsconfig.json             # TypeScript 编译配置
├── README.md                 # 完整项目文档(800+ 行)
├── QUICKSTART.md             # 快速启动指南
├── DELIVERY.md               # 项目交付清单
├── postman_collection.json   # API 测试集合
└── setup.sh                  # 自动化初始化脚本

🗄️ Prisma 数据库(3 个)

prisma/
├── schema.prisma             # 数据库模型定义(User 模型 + Role 枚举)
├── seed.ts                   # 测试数据种子(管理员 + 普通用户)
└── migrations/
    └── .gitkeep              # 保持目录存在

🛠️ VSCode 配置(2 个)

.vscode/
├── settings.json             # 编辑器配置
└── extensions.json           # 推荐插件列表

📦 源代码文件(31 个)

🏗️ 核心文件(3 个)

src/
├── main.ts                   # 应用入口(启动配置)
├── app.module.ts             # 应用主模块(模块整合)
└── config/
    └── swagger.config.ts     # Swagger 文档配置(蓝色主题)

🔐 认证模块(7 个)

src/modules/auth/
├── auth.module.ts            # 认证模块配置
├── auth.controller.ts        # 认证控制器(注册、登录、profile)
├── auth.service.ts           # 认证服务(JWT 生成、验证)
├── dto/
│   ├── index.ts
│   ├── register.dto.ts       # 注册数据验证
│   └── login.dto.ts          # 登录数据验证
└── strategies/
    └── jwt.strategy.ts       # JWT Passport 策略

👥 用户模块(7 个)

src/modules/users/
├── users.module.ts           # 用户模块配置
├── users.controller.ts       # 用户控制器(CRUD 接口)
├── users.service.ts          # 用户服务(业务逻辑)
└── dto/
    ├── index.ts
    ├── create-user.dto.ts    # 创建用户验证
    ├── update-user.dto.ts    # 更新用户验证
    └── query-user.dto.ts     # 查询用户验证(分页、搜索)

🗄️ Prisma 模块(2 个)

src/modules/prisma/
├── prisma.module.ts          # Prisma 模块配置(全局)
└── prisma.service.ts         # Prisma 服务(数据库连接)

🧩 公共模块(12 个)

src/common/
├── index.ts                  # 统一导出
├── decorators/               # 装饰器(3 个)
│   ├── index.ts
│   ├── public.decorator.ts         # @Public() 公开路由
│   ├── roles.decorator.ts          # @Roles() 角色控制
│   └── current-user.decorator.ts   # @CurrentUser() 获取当前用户
├── guards/                   # 守卫(3 个)
│   ├── index.ts
│   ├── jwt-auth.guard.ts           # JWT 认证守卫
│   └── roles.guard.ts              # 角色权限守卫
├── interceptors/             # 拦截器(2 个)
│   ├── index.ts
│   └── transform.interceptor.ts    # 响应格式转换
├── filters/                  # 过滤器(2 个)
│   ├── index.ts
│   └── http-exception.filter.ts    # 全局异常处理
└── pipes/                    # 管道(2 个)
    ├── index.ts
    └── validation.pipe.ts          # 数据验证管道

📊 文件统计

类型数量说明
TypeScript 源文件31核心业务代码
配置文件10项目配置
文档文件4README、指南等
数据库文件3Prisma Schema 和 Seed
工具文件2VSCode 配置
总计50-

🎯 核心功能对应文件

1️⃣ JWT 认证体系

  • auth.service.ts - Token 生成与验证
  • jwt.strategy.ts - Passport JWT 策略
  • jwt-auth.guard.ts - JWT 认证守卫

2️⃣ 基于角色的访问控制(RBAC)

  • roles.decorator.ts - @Roles() 装饰器
  • roles.guard.ts - 角色权限守卫
  • schema.prisma - Role 枚举定义

3️⃣ 数据验证

  • *.dto.ts - 所有 DTO 文件(8 个)
  • validation.pipe.ts - 全局验证管道

4️⃣ 统一响应格式

  • transform.interceptor.ts - 响应转换拦截器
  • http-exception.filter.ts - 异常响应格式化

5️⃣ Swagger 文档

  • swagger.config.ts - Swagger 配置
  • main.ts - Swagger 初始化
  • 所有 DTO - @ApiProperty() 装饰器

6️⃣ 数据库操作

  • prisma.service.ts - Prisma Client 封装
  • schema.prisma - 数据模型定义
  • seed.ts - 测试数据填充

🔗 模块依赖关系

AppModule (app.module.ts)
├── ConfigModule (全局环境变量)
├── PrismaModule (全局数据库服务)
├── AuthModule
│   ├── JwtModule (JWT Token)
│   ├── PassportModule (认证策略)
│   └── PrismaModule (数据库)
└── UsersModule
    └── PrismaModule (数据库)

全局提供者:
├── APP_GUARD → JwtAuthGuard (全局 JWT 认证)
├── APP_INTERCEPTOR → TransformInterceptor (全局响应转换)
└── APP_FILTER → HttpExceptionFilter (全局异常处理)

📝 每个文件的作用说明

认证流程文件

  1. register.dto.ts - 验证注册数据
  2. auth.service.ts - 处理注册逻辑、生成 Token
  3. auth.controller.ts - 暴露注册接口
  4. login.dto.ts - 验证登录数据
  5. auth.service.ts - 验证密码、生成 Token
  6. jwt.strategy.ts - 验证 Token、提取用户信息

用户 CRUD 流程文件

  1. *.dto.ts - 验证请求数据
  2. users.controller.ts - 接收 HTTP 请求
  3. users.service.ts - 执行业务逻辑
  4. prisma.service.ts - 操作数据库
  5. transform.interceptor.ts - 格式化响应

权限控制流程文件

  1. jwt-auth.guard.ts - 检查 JWT Token
  2. jwt.strategy.ts - 解析 Token、获取用户
  3. roles.guard.ts - 检查用户角色
  4. roles.decorator.ts - 定义所需角色

🚀 关键路径

应用启动路径

main.ts
└── bootstrap()
    ├── NestFactory.create(AppModule)
    ├── setupSwagger(app) → swagger.config.ts
    ├── app.enableCors()
    ├── app.setGlobalPrefix('api')
    ├── app.useGlobalPipes(ValidationPipe)
    └── app.listen(3000)

请求处理路径

HTTP 请求
└── JwtAuthGuard (验证 Token)
    └── RolesGuard (验证角色)
        └── Controller (处理请求)
            └── Service (业务逻辑)
                └── PrismaService (数据库)
                    └── TransformInterceptor (格式化响应)

✨ 项目亮点

  1. 完全模块化 - 每个功能独立模块,易于维护扩展
  2. 类型安全 - 100% TypeScript,完整类型定义
  3. 自动验证 - class-validator 自动验证所有输入
  4. 统一响应 - 全局拦截器统一响应格式
  5. 完善文档 - Swagger 自动生成,支持在线测试
  6. 开箱即用 - 提供测试数据、API 集合、初始化脚本
  7. 最佳实践 - 遵循 NestJS 官方推荐架构

创建时间: 2025-01-15 文件总数: 50 个 代码行数: ~3000 行 状态: ✅ 全部完成