一份完整系统的 NestJS 学习指南,从入门到精通,涵盖基础核心、高级特性、微服务、云部署等全方位内容
本项目是针对 NestJS 框架 的系统化学习路线和详细笔记资料库。旨在帮助开发者快速掌握 NestJS 核心概念,逐步深入学习高级特性,最终能够胜任企业级应用开发工作。
- ✅ 有 JavaScript/TypeScript 基础的开发者
- ✅ 想系统学习 NestJS 的后端开发工程师
- ✅ 准备参加相关技术面试的求职者
- ✅ 希望从 Express/Koa 迁移到 NestJS 的开发者
- 掌握 JavaScript ES6+ 基础知识
- 了解 TypeScript 基本语法
- 具有 Node.js 开发经验
- 理解 HTTP 协议基础概念
本学习路线分为 5 个递进式阶段,共包含 30+ 个详细学习模块:
| 模块 | 主题 | 学习时间 | 难度 |
|---|---|---|---|
| 00 | 入门准备 - 环境配置、项目初始化 | 1-2天 | ⭐ |
| 01 | Nest基础核心 - 装饰器、模块化、DI | 3-4天 | ⭐⭐ |
| 模块 | 主题 | 学习时间 | 难度 |
|---|---|---|---|
| 02 | 核心机制七剑 - 中间件、守卫、拦截器、管道、异常等 | 4-5天 | ⭐⭐ |
| 03 | 数据持久化 - TypeORM、数据库集成 | 4-5天 | ⭐⭐ |
| 04 | 配置与环境 - 环境变量、配置管理 | 1-2天 | ⭐ |
| 05 | 数据验证与DTO - 请求验证、数据传输对象 | 2-3天 | ⭐⭐ |
| 06 | 认证与授权 - JWT、OAuth、角色权限 | 3-4天 | ⭐⭐⭐ |
| 模块 | 主题 | 学习时间 | 难度 |
|---|---|---|---|
| 07 | 文件处理 - 文件上传、下载、存储 | 2-3天 | ⭐⭐ |
| 08 | 缓存策略 - Redis 缓存集成 | 2-3天 | ⭐⭐ |
| 09 | 消息队列 - RabbitMQ、Kafka 集成 | 3-4天 | ⭐⭐⭐ |
| 10 | 实时通信 - WebSocket、Socket.IO | 3-4天 | ⭐⭐⭐ |
| 11 | 微服务架构 - 微服务模式、通信 | 4-5天 | ⭐⭐⭐ |
| 12 | GraphQL开发 - GraphQL 集成与开发 | 3-4天 | ⭐⭐⭐ |
| 13 | 事件驱动架构 - 事件模式、发布订阅 | 2-3天 | ⭐⭐ |
| 14 | 任务调度 - Cron 任务、定时器 | 1-2天 | ⭐⭐ |
| 15 | 测试策略 - 单元测试、集成测试、E2E测试 | 3-4天 | ⭐⭐⭐ |
| 16 | API文档 - Swagger/OpenAPI 集成 | 1-2天 | ⭐ |
| 17 | 安全加固 - 安全最佳实践、漏洞防护 | 2-3天 | ⭐⭐ |
| 模块 | 主题 | 学习时间 | 难度 |
|---|---|---|---|
| 18 | 性能优化 - 缓存、数据库优化、API 优化 | 3-4天 | ⭐⭐⭐ |
| 19 | 监控与日志 - 日志系统、性能监控 | 2-3天 | ⭐⭐ |
| 20 | 健康检查 - Terminus 健康检查 | 1天 | ⭐ |
| 21 | 国际化与本地化 - i18n 支持 | 1-2天 | ⭐ |
| 22 | 动态模块开发 - 高级模块化设计 | 2-3天 | ⭐⭐⭐ |
| 23 | CLI工具开发 - NestCLI、自定义命令 | 1-2天 | ⭐⭐ |
| 24 | Docker容器化 - Docker 打包部署 | 2-3天 | ⭐⭐ |
| 25 | Kubernetes部署 - K8s 集群部署 | 4-5天 | ⭐⭐⭐ |
| 26 | CI-CD流水线 - GitHub Actions、GitLab CI | 2-3天 | ⭐⭐ |
| 27 | Nest.js-11新特性 - 最新版本特性 | 2-3天 | ⭐⭐ |
| 28 | 高级架构模式 - 领域驱动设计、CQRS等 | 4-5天 | ⭐⭐⭐ |
| 模块 | 主题 | 学习时间 | 难度 |
|---|---|---|---|
| 30 | 面试准备 - 常见问题、案例分析 | 随时 | ⭐⭐⭐ |
| 31 | 附录与资源 - 学习资源、工具推荐 | 参考 | - |
基础入门 (00-01) → 4-6天
核心机制 (02-06) → 14-17天
扩展功能 (07-17) → 25-32天
高级特性 (18-28) → 24-31天
面试准备 (30) → 7-10天
────────────────────────
总计学习时间 → 74-96天 (3-4个月)
💡 建议:每天花费 6-8 小时集中学习,配合实践项目效果最佳
- 阅读各模块详细笔记
- 理解核心概念和原理
- 记录关键要点
- 跟随示例代码逐行编写
- 修改代码进行实验
- 理解代码运行原理
- 结合实际业务场景
- 构建小型示范项目
- 解决真实问题
- 定期复习学过的内容
- 参与互动问答讨论
- 整理学习笔记
- ✅ 详细笔记 - 30+ 模块的完整学习资料
- ✅ FAQ文档 - 高频问题解答
- ✅ 代码示例 - 每个模块的实战代码
- ✅ 互动问答 - 可交互式问答网页
| 工具 | 用途 | 链接 |
|---|---|---|
| NestJS 官方文档 | 框架学习参考 | https://docs.nestjs.com |
| TypeScript | 静态类型支持 | https://www.typescriptlang.org |
| TypeORM | 数据库 ORM | https://typeorm.io |
| PostgreSQL | 关系数据库 | https://www.postgresql.org |
| Redis | 缓存/消息队列 | https://redis.io |
| Docker | 容器化部署 | https://www.docker.com |
| Kubernetes | 容器编排 | https://kubernetes.io |
# 安装 Node.js 18+
node --version
# 全局安装 NestJS CLI
npm install -g @nestjs/cli
# 验证安装
nest --version# 创建 NestJS 项目
nest new my-app
# 进入项目目录
cd my-app
# 启动开发服务
npm run start:dev- 先阅读
00-入门准备文件夹 - 按顺序学习各个模块
- 完成每个模块的练习代码
- 参考 FAQ 解决遇到的问题
Q: 需要什么基础? A: 需要熟悉 JavaScript ES6+ 和 TypeScript 基本语法。如不熟悉,建议先补充基础。
Q: 学完能做什么? A: 可以开发完整的企业级后端应用,包括 RESTful API、微服务、实时应用等。
Q: 有代码示例吗? A: 有的,每个模块都包含实战代码示例,可直接运行和修改学习。
Q: 推荐的学习顺序是什么? A: 严格按照 00-31 的顺序学习效果最佳,因为后续模块依赖前面的基础。
更多 FAQ 请查看 FAQ.md 文件。
- 📧 提问建议:遇到问题可查阅 FAQ 或提出问题
- 💬 互动讨论:使用可互动式问答网页进行讨论
- 📱 分享经验:欢迎分享你的学习心得
建议使用以下方式跟踪学习进度:
- 00 - 入门准备
- 01 - Nest基础核心
- 02 - 核心机制七剑
- 03 - 数据持久化
- 04 - 配置与环境
- 05 - 数据验证与DTO
- 06 - 认证与授权
- 07 - 文件处理
- 08 - 缓存策略
- 09 - 消息队列
- 10 - 实时通信
- 11 - 微服务架构
- 12 - GraphQL开发
- 13 - 事件驱动架构
- 14 - 任务调度
- 15 - 测试策略
- 16 - API文档
- 17 - 安全加固
- 18 - 性能优化
- 19 - 监控与日志
- 20 - 健康检查
- 21 - 国际化与本地化
- 22 - 动态模块开发
- 23 - CLI工具开发
- 24 - Docker容器化
- 25 - Kubernetes部署
- 26 - CI-CD流水线
- 27 - Nest.js-11新特性
- 28 - 高级架构模式
- 30 - 面试准备
- 循序渐进 - 不要跳过基础模块,基础打牢很重要
- 多做实践 - 理论+实践结合,不要只看不练
- 定期复习 - 每周回顾上周学习的内容
- 参与讨论 - 在互动问答中讨论各个知识点
- 构建项目 - 学完后用所学知识做一个完整项目
- 查看源码 - 深入学习阶段后,可阅读 NestJS 源码
本项目资料为学习用途,遵循开放共享精神。
感谢所有为 NestJS 生态做贡献的开发者和社区成员!
最后更新时间:2025年11月
当前版本:2025.11.0
推荐 NestJS 版本:v11.0+
祝你学习愉快!🚀