学习路线
🧩 一、核心概念与架构
模块化系统(Modules)
- 使用
@Module()
组织代码,管理控制器、服务及依赖。 - 模块间通过
imports
导入依赖,exports
暴露服务。
- 使用
控制器(Controllers)
- 处理 HTTP 请求,通过装饰器定义路由(如
@Get()
、@Post()
)。 - 结合
@Param()
、@Body()
获取请求参数。
- 处理 HTTP 请求,通过装饰器定义路由(如
提供者与依赖注入(Providers & DI)
- 服务类用
@Injectable()
标记,通过构造函数注入到控制器或其他服务。 - 依赖注入容器自动管理实例生命周期。
- 服务类用
装饰器(Decorators)
- 核心语法如
@Controller
、@Injectable
、@UseGuards
,用于增强类或方法功能。
- 核心语法如
⚙️ 二、请求处理与中间件
管道(Pipes)
- 数据验证(如
class-validator
)和转换(如class-transformer
)。 - 示例:校验 DTO 对象并自动返回错误。
- 数据验证(如
守卫(Guards)
- 实现权限控制(如 JWT 鉴权、角色校验),通过
@UseGuards()
应用。
- 实现权限控制(如 JWT 鉴权、角色校验),通过
拦截器(Interceptors)
- 在请求前后插入逻辑(如日志记录、响应格式统一)。
异常过滤器(Exception Filters)
- 自定义错误响应格式,处理全局异常。
🗃️ 三、数据管理与集成
ORM 框架
- TypeORM(官方推荐):实体装饰器建模、迁移工具。
- Prisma:类型安全、自动生成查询接口。
数据库支持
- 关系型(MySQL/PostgreSQL)与非关系型(MongoDB)集成。
缓存与队列
- 使用 Redis 实现缓存(
cache-manager
)或消息队列。
- 使用 Redis 实现缓存(
🔐 四、安全与认证
身份验证(Authentication)
- JWT 方案:
@nestjs/jwt
+@nestjs/passport
实现登录。 - OAuth2.0:集成第三方登录(微信、QQ)。
- JWT 方案:
授权(Authorization)
- 基于角色的访问控制(RBAC),通过
RoleGuard
限制接口权限。
- 基于角色的访问控制(RBAC),通过
🛠️ 五、工程化与进阶
配置管理
@nestjs/config
加载.env
环境变量。
日志系统
- 集成
winston
或pino
,支持分级日志和集中存储。
- 集成
任务调度
@nestjs/schedule
处理定时任务(如清理缓存)。
微服务架构
- 使用
@nestjs/microservices
支持 TCP/Redis/Kafka 通信。 - 构建 API 网关整合多服务。
- 使用
GraphQL 集成
- 通过
@nestjs/graphql
快速构建 API。
- 通过
🚀 六、部署与运维
容器化与编排
- Dockerfile 打包应用,Docker Compose 管理多服务。
CI/CD 流程
- 配置 GitHub Actions 或 Jenkins 自动化测试与部署。
监控与日志
- 使用 ELK Stack 或 Prometheus 收集指标。
📌 学习路线建议
- 基础阶段:TypeScript 强化 → NestJS 核心模块 → REST API 实现。
- 中级实战:数据库集成(TypeORM/Prisma) → JWT 鉴权 → RBAC 权限系统。
- 高阶项目:
- 仿商城系统(支付+订单)
- 分布式聊天室(WebSocket + Redis)
- 微服务架构拆分。
推荐资源: