Skip to content

学习路线

🧩 一、核心概念与架构

  1. 模块化系统(Modules)

    • 使用 @Module() 组织代码,管理控制器、服务及依赖。
    • 模块间通过 imports 导入依赖,exports 暴露服务。
  2. 控制器(Controllers)

    • 处理 HTTP 请求,通过装饰器定义路由(如 @Get()@Post())。
    • 结合 @Param()@Body() 获取请求参数。
  3. 提供者与依赖注入(Providers & DI)

    • 服务类用 @Injectable() 标记,通过构造函数注入到控制器或其他服务。
    • 依赖注入容器自动管理实例生命周期。
  4. 装饰器(Decorators)

    • 核心语法如 @Controller@Injectable@UseGuards,用于增强类或方法功能。

⚙️ 二、请求处理与中间件

  1. 管道(Pipes)

    • 数据验证(如 class-validator)和转换(如 class-transformer)。
    • 示例:校验 DTO 对象并自动返回错误。
  2. 守卫(Guards)

    • 实现权限控制(如 JWT 鉴权、角色校验),通过 @UseGuards() 应用。
  3. 拦截器(Interceptors)

    • 在请求前后插入逻辑(如日志记录、响应格式统一)。
  4. 异常过滤器(Exception Filters)

    • 自定义错误响应格式,处理全局异常。

🗃️ 三、数据管理与集成

  1. ORM 框架

    • TypeORM(官方推荐):实体装饰器建模、迁移工具。
    • Prisma:类型安全、自动生成查询接口。
  2. 数据库支持

    • 关系型(MySQL/PostgreSQL)与非关系型(MongoDB)集成。
  3. 缓存与队列

    • 使用 Redis 实现缓存(cache-manager)或消息队列。

🔐 四、安全与认证

  1. 身份验证(Authentication)

    • JWT 方案:@nestjs/jwt + @nestjs/passport 实现登录。
    • OAuth2.0:集成第三方登录(微信、QQ)。
  2. 授权(Authorization)

    • 基于角色的访问控制(RBAC),通过 RoleGuard 限制接口权限。

🛠️ 五、工程化与进阶

  1. 配置管理

    • @nestjs/config 加载 .env 环境变量。
  2. 日志系统

    • 集成 winstonpino,支持分级日志和集中存储。
  3. 任务调度

    • @nestjs/schedule 处理定时任务(如清理缓存)。
  4. 微服务架构

    • 使用 @nestjs/microservices 支持 TCP/Redis/Kafka 通信。
    • 构建 API 网关整合多服务。
  5. GraphQL 集成

    • 通过 @nestjs/graphql 快速构建 API。

🚀 六、部署与运维

  1. 容器化与编排

    • Dockerfile 打包应用,Docker Compose 管理多服务。
  2. CI/CD 流程

    • 配置 GitHub Actions 或 Jenkins 自动化测试与部署。
  3. 监控与日志

    • 使用 ELK Stack 或 Prometheus 收集指标。

📌 学习路线建议

  1. 基础阶段:TypeScript 强化 → NestJS 核心模块 → REST API 实现。
  2. 中级实战:数据库集成(TypeORM/Prisma) → JWT 鉴权 → RBAC 权限系统。
  3. 高阶项目
    • 仿商城系统(支付+订单)
    • 分布式聊天室(WebSocket + Redis)
    • 微服务架构拆分。

推荐资源: