🧩 一、Nest.js 核心生态体系(官方 + 常用第三方)
🏗️ 1. 框架核心
| 模块 | 说明 |
|---|---|
@nestjs/core | Nest.js 核心模块,提供依赖注入、模块系统、生命周期钩子等 |
@nestjs/common | 提供常用装饰器(@Controller、@Injectable、@Get 等)和常规工具类 |
@nestjs/platform-express / @nestjs/platform-fastify | 不同 HTTP 平台的适配层(默认是 Express,也支持 Fastify) |
🧰 2. 常用功能模块
| 模块 | 功能 |
|---|---|
@nestjs/config | 配置管理(加载 .env 环境变量) |
@nestjs/typeorm / @nestjs/mongoose | ORM/ODM 支持(数据库) |
@nestjs/jwt + @nestjs/passport | 用户认证、授权体系 |
@nestjs/swagger | 自动生成 Swagger API 文档 |
@nestjs/cache-manager | 缓存系统(Redis/Memcached) |
@nestjs/schedule | 定时任务(基于 cron) |
@nestjs/axios | HTTP 请求模块(基于 axios) |
@nestjs/microservices | 微服务架构支持(支持 Kafka、MQTT、NATS、Redis 等) |
@nestjs/graphql | GraphQL 模块 |
@nestjs/websockets | WebSocket 实时通信(基于 socket.io) |
🧱 3. 数据库层生态
| 库 | 特点 |
|---|---|
| TypeORM | 官方推荐 ORM,支持多数据库(MySQL、PostgreSQL、SQLite 等) |
| Prisma | 现代类型安全 ORM,类型推导非常强,近年趋势明显上升 |
| Mongoose | MongoDB ODM |
🧠 4. 认证与安全
- JWT(Json Web Token)
- OAuth2(第三方登录)
- RBAC / ABAC 权限控制模型
- CSRF、CORS、Helmet 安全中间件
🧮 5. DevOps & 工具链
- CLI 工具:
nest generate、nest build、nest start - 配置管理:dotenv、cross-env
- 测试:Jest(默认集成)
- Lint / Format:ESLint + Prettier
- 日志:
@nestjs/terminus(健康检查)、@nestjs/pino(高性能日志)
☁️ 6. 微服务与分布式支持
| 模块 | 功能 |
|---|---|
@nestjs/microservices | 原生支持 Kafka、Redis、NATS、RabbitMQ、gRPC |
@nestjs/event-emitter | 事件驱动编程(EventEmitter2) |
@nestjs/terminus | 健康检查与监控 |
nestjs-cls | 上下文隔离存储(如链路追踪 Trace ID) |
🌐 7. 前后端协作
- BFF 模式(Backend for Frontend)
- 集成 GraphQL / REST / WebSocket
- 可对接 React / Vue 前端
- 可作为中间层网关(API Gateway)
🧭 二、学习路线图(由浅入深)
🚀 阶段 1:基础入门(1~2 周)
目标:熟悉 Nest.js 架构思想、依赖注入与模块化编程。
学习内容:
- Nest CLI 基础命令(
nest new,nest generate,nest start) - 模块(
@Module)、控制器(@Controller)、服务(@Injectable) - 路由与请求处理(
@Get,@Post) - DTO、Pipe、Guard、Interceptor 基本用法
- 全局异常过滤器(ExceptionFilter)
✅ 练习建议:
实现一个简单的 TodoList RESTful API
⚙️ 阶段 2:进阶开发(2~4 周)
目标:掌握数据库、配置、认证、日志等常用能力。
学习内容:
- 数据库连接(TypeORM / Prisma)
- 配置模块(
@nestjs/config) - 用户登录注册 + JWT 鉴权
- 全局中间件、拦截器、异常过滤器
- Swagger 文档集成(
@nestjs/swagger) - 日志、守卫(Guard)、权限控制
✅ 练习建议:
实现一个完整的 用户系统 + 权限管理 + Swagger 文档
🧩 阶段 3:高级与架构设计(1~2 月)
目标:掌握微服务、消息队列、缓存、任务调度等企业级能力。
学习内容:
- 微服务通信(Kafka / RabbitMQ / Redis)
- 缓存策略(Redis +
@nestjs/cache-manager) - 定时任务(
@nestjs/schedule) - 事件驱动(
@nestjs/event-emitter) - 应用部署与健康检查(
@nestjs/terminus) - 性能优化、模块解耦、AOP设计思想
✅ 练习建议:
实现一个 分布式订单系统 或 日志聚合服务
🌍 阶段 4:全栈与工程化(持续提升)
目标:结合前端(React/Vue)与 DevOps 实现完整闭环。
方向选择:
- GraphQL + Apollo 联合前端
- Serverless 部署(Vercel / AWS Lambda)
- Docker + CI/CD(GitHub Actions / Jenkins)
- 单元测试 & 集成测试(Jest + Supertest)
💡 三、学习资源推荐
| 类型 | 推荐 |
|---|---|
| 官方文档 | docs.nestjs.com/ |
| 中文教程 | NestJS 中文文档 |
| 视频教程 | B 站搜索「Nest.js 实战」「NestJS 微服务」 |
| ORM | TypeORM 文档,Prisma |
| 实战项目 | GitHub: nestjs/typescript-starter, awesome-nestjs |
| 社区 | Discord、Reddit、掘金「Nest.js」标签 |
📚 四、建议的学习路径总结图
基础语法(TypeScript)
↓
Nest核心模块(Controller / Service / Module)
↓
中间件 / 拦截器 / 守卫 / 过滤器
↓
数据库(TypeORM / Prisma)
↓
认证鉴权(JWT / RBAC)
↓
Swagger + Config + Logger
↓
微服务 / Redis / MQ / Schedule
↓
CI/CD + Docker + 测试 + 部署