NestJS 是目前非常流行的企业级 Node.js 框架,适合做中后台、API 服务、微服务等。下面整理一份详细的 NestJS 标准学习路线,涵盖从基础到进阶,再到企业级实战。每一步都配有简单说明和建议实践方向。
🚩 一、基础入门
1. 先决知识准备
- TypeScript 基础
NestJS 是基于 TypeScript 构建的,建议先掌握 TS 语法(接口、泛型、类、装饰器等)。 - Node.js 基础
熟悉 Node.js 运行原理、npm/yarn、事件循环、异步等。
2. NestJS 核心概念
-
项目初始化
- 使用 CLI 快速创建项目:
nest new project-name
- 使用 CLI 快速创建项目:
-
架构理解
- 了解模块(Module)、控制器(Controller)、服务(Service)的作用和关系
-
依赖注入(DI)
- 理解 NestJS 强大的依赖注入机制
3. 基础功能实战
-
路由与请求处理
- Controller 路由映射
- 参数装饰器(@Param, @Body, @Query 等)
-
服务(Service)开发
- 业务逻辑抽离到服务层
-
配置管理
- 配置文件管理(如 dotenv、@nestjs/config)
🚩 二、进阶能力提升
1. 数据库集成
-
TypeORM/Mongoose/Prisma
学会选择一种 ORM/ODM(如 TypeORM、Prisma、Mongoose),连接 MySQL、PostgreSQL 或 MongoDB。- 实体/模型设计
- 数据库迁移
- Repository/Model 的用法
2. 中间件与拦截器
- 中间件(Middleware):如日志、鉴权
- 守卫(Guard):权限控制、JWT 校验
- 拦截器(Interceptor):统一响应、异常处理、缓存
- 管道(Pipe):参数验证与转换(如 class-validator)
3. 配置和环境管理
- 多环境配置
- 通过
.env文件管理敏感信息
4. 日志与异常处理
- 内置异常过滤器
全局异常处理、自定义异常 - 日志系统
集成 Winston/Pino 等日志库,分级别记录日志
🚩 三、高级/企业级开发
1. 认证与授权
- JWT、OAuth2.0 等认证方案
用户登录、Token 签发与校验 - RBAC/ABAC 权限模型
管理不同用户角色的访问权限
2. 微服务与分布式
-
微服务架构
- NestJS 自带微服务包(RabbitMQ、Kafka、gRPC 等)
- 服务间通信(Message Patterns、Event Patterns)
- API 网关
使用 @nestjs/apigateway 实现统一入口、负载均衡、鉴权等
3. 性能与安全
- 性能优化:请求限流(@nestjs/throttler)、缓存(Redis)、异步任务(Bull)
- 安全加固:Helmet、CORS、CSRF、XSS 防护
4. 测试与部署
- 单元测试/集成测试:Jest、Supertest
- 持续集成/部署(CI/CD):GitHub Actions、GitLab CI、Docker
- 容器化部署:Docker、Kubernetes
🚩 四、生态扩展与最佳实践
1. 常用插件/库
@nestjs/swagger:自动生成接口文档@nestjs/schedule:定时任务@nestjs/config:配置管理class-validator/class-transformer:数据校验与转换
2. 代码规范与组织
- 合理拆分模块、服务、实体
- 注重代码可读性和可维护性
- 多环境配置和 Secrets 管理
3. 实战项目练习建议
- 个人博客 API/后台管理系统
- 简单商城或订单管理系统
- 企业级微服务架构项目
🚩 五、推荐学习资料
- NestJS 官方文档:https://docs.nestjs.com
- TypeScript 文档:https://www.typescriptlang.org/docs/
- Bilibili/YouTube 系列课程:如 “极客时间-深入浅出NestJS”等
- 优秀开源项目:GitHub 搜索
nestjs相关项目,参考项目架构
总结
NestJS 学习建议 “实战驱动”,边学边练,遇到问题多查官方文档。每个阶段都建议通过小项目检验学习成果。路线梳理如下:
基础打牢(TS/Node) → 掌握NestJS架构与核心用法 → 数据库/中间件/认证/异常处理 → 微服务/分布式/安全/测试/部署 → 深入生态和最佳实践。