一套面向前端工程师的 60 天 Node.js 全栈系统学习路线
从 Node.js 基础原理到后端框架、数据库、缓存、部署上线与全栈项目实战,帮助你系统补齐全栈能力。
🚧 WIP: 当前已完整整理 Day 1-34(阶段一 + 阶段二全部 + 阶段三的认证授权:Session/JWT、注册登录、RBAC、OAuth 第三方登录,含 NestJS + Prisma + PostgreSQL 博客 API v1.0 里程碑、可运行参考实现),Day 35-60 正在持续补充详细讲解、练习与参考答案。
快速开始 • 课程大纲 • 项目实战 • 贡献指南 • 完整路线图
市面上的 Node.js 教程要么太入门(只教你写 Hello World),要么太零散(几百篇博客拼不出体系)。
这个仓库的目标是:用 60 天时间,帮助有前端基础的工程师系统掌握 Node.js 全栈开发,从核心原理到生产部署,逐步建立完整的全栈知识体系和项目交付能力。
当前状态说明:仓库已完整完成 Day 1-34——阶段一(Node.js 核心,Day 1-15)+ 阶段二(后端框架与数据库,Day 16-30)全部正文、练习与可运行参考实现,博客 API 已封版到 v1.0(NestJS + Prisma + PostgreSQL,含分页/搜索/并发控制/OpenAPI 文档);阶段三(认证、安全与缓存,Day 31-40)进行中——Day 31 认证基础(Session vs JWT)+ Day 32 JWT 实战(注册/登录、bcrypt、Access+Refresh 双 Token)+ Day 33 RBAC 授权(角色守卫 + 资源级权限)+ Day 34 OAuth 2.0(GitHub 第三方登录、授权码模式)均已接入 blog-api。Day 35-60 已建立路线图与每日页面骨架,详细正文、练习模板与参考答案会继续迭代补充。
- 以天为单位组织内容,学习节奏清晰,适合持续推进
- 从 Node.js 核心原理一路覆盖 NestJS、PostgreSQL、Redis、Docker、Next.js
- 每个阶段都围绕里程碑项目设计,不只学知识点,也强调项目交付能力
- 面向前端工程师设计学习路径,重点补齐服务端、数据库、工程化与系统设计能力
- ✅ 有 1-3 年前端经验,想转全栈的工程师
- ✅ 熟悉 JavaScript/TypeScript,想深入 Node.js 服务端的开发者
- ✅ 想系统性补齐后端知识短板的前端工程师
⚠️ 完全的编程新手可能需要先学习 JavaScript 基础
| 能力维度 | 具体技能 |
|---|---|
| 服务端开发 | Node.js 核心原理、NestJS 框架、REST API 设计、中间件体系 |
| 数据库 | PostgreSQL、SQL 编写、Prisma ORM、数据库建模与优化 |
| 认证安全 | JWT、OAuth 2.0、RBAC 权限、Web 安全防护 |
| 缓存队列 | Redis 缓存策略、BullMQ 消息队列、实时通信 |
| DevOps | Docker 容器化、CI/CD 流水线、云部署、日志监控 |
| 系统设计 | 分布式基础概念、性能优化、系统设计面试方法论 |
- Node.js v20+(推荐使用 nvm 管理版本)
- Git(版本控制)
- VS Code(推荐编辑器)
- Docker Desktop(Day 21 起需要)
- 每天 3-4 小时学习时间
# 克隆仓库
git clone https://github.com/cris1994.wang/60-days-nodejs.git
cd 60-days-nodejs
# 从 Day 1 开始
cd days/day-01
# 阅读 README.md 开始学习- 按天推进,共 60 天完成完整学习闭环
- 每天投入 3 到 4 小时,兼顾系统学习与动手实践
- 建议按顺序学习,避免跳过阶段性里程碑
- Day 1-34 已有完整正文与可运行参考实现,建议按顺序学完;Day 35 起可结合路线图、推荐资源和你自己的练习持续推进
- 按顺序学习 — 每天的内容建立在前一天的基础之上
- 动手编码 — 光看不练等于没学,每天都要完成实践练习
- 写学习笔记 — 用自己的话总结当天知识点
- 提交代码 — 每天都向自己的仓库提交代码,保持 commit 记录
- 不要跳过里程碑 — 每 5-10 天的里程碑项目是检验学习效果的最佳方式
从零搭建开发环境,深入理解 Node.js 运行时原理,用原生 API 手写 HTTP 服务器和 REST API。
| 天数 | 主题 | 关键词 |
|---|---|---|
| Day 01 | 环境搭建与 Node.js 初印象 | 安装、REPL、Hello World |
| Day 02 | 模块系统与包管理 | CJS/ESM、npm/pnpm |
| Day 03 | 核心模块(上):fs、path、os | 文件系统、路径处理 |
| Day 04 | 核心模块(下):events、stream | EventEmitter、Buffer、Stream |
| Day 05 | 事件循环深度解析 | Event Loop、libuv、异步 I/O |
| Day 06 | 异步编程模式 | Promise、async/await、并发控制 |
| Day 07 | HTTP 协议基础 | 状态码、请求头、node:http |
| Day 08 | 手写 REST API(上) | 路由匹配、请求体解析 |
| Day 09 | 手写 REST API(下) | 中间件模式、CORS、错误处理 |
| Day 10 | 🏆 里程碑:迷你项目 Review | 代码重构、README 文档 |
| Day 11 | TypeScript 服务端开发 | tsconfig、类型系统、tsx |
| Day 12 | RESTful API 设计原则 | 资源命名、版本化、OpenAPI |
| Day 13 | 进程管理与 Worker Threads | child_process、cluster、多线程 |
| Day 14 | 错误处理与调试技巧 | 自定义错误、调试工具 |
| Day 15 | 🎯 阶段一总结与测验 | 知识回顾、编码测验 |
深入 NestJS 企业级框架,掌握 PostgreSQL 和 Prisma ORM,构建完整的博客系统后端。
| 天数 | 主题 | 关键词 |
|---|---|---|
| Day 16 | NestJS 入门:架构与核心概念 | IoC/DI、Module/Controller/Service |
| Day 17 | NestJS 深入:请求生命周期 | Middleware、Guard、Interceptor |
| Day 18 | NestJS 数据验证与 DTO | class-validator、Pipe |
| Day 19 | NestJS 异常处理与响应标准化 | ExceptionFilter、统一响应 |
| Day 20 | 🏆 里程碑:NestJS 博客 API | 内存数据、完整 CRUD |
| Day 21 | PostgreSQL 入门 | Docker 安装、SQL 基础 |
| Day 22 | SQL 进阶:JOIN 与子查询 | 多表查询、聚合函数 |
| Day 23 | SQL 进阶:索引与性能 | B+ 树、EXPLAIN ANALYZE |
| Day 24 | 数据库建模实战 | 范式、ER 图、多对多关系 |
| Day 25 | Prisma ORM 入门 | Schema、Migration、CRUD |
| Day 26 | Prisma ORM 进阶 | 事务、N+1 问题、原生 SQL |
| Day 27 | NestJS + Prisma 整合 | Repository 模式、Service 层 |
| Day 28 | 分页、搜索与排序 | Cursor 分页、模糊搜索 |
| Day 29 | 数据库事务与并发控制 | ACID、隔离级别、乐观锁 |
| Day 30 | 🏆 里程碑:博客系统完整版 | Swagger 文档、代码重构 |
实现生产级认证授权体系,集成 Redis 缓存和消息队列,构建安全加固版博客系统。
| 天数 | 主题 | 关键词 |
|---|---|---|
| Day 31 | 认证基础:Session vs JWT | 有状态/无状态、Token 结构 |
| Day 32 | JWT 认证实战 | bcrypt、双 Token、登录注册 |
| Day 33 | RBAC 权限模型 | 角色权限、Guard、资源级权限 |
| Day 34 | OAuth 2.0 与第三方登录 | 授权码模式、GitHub OAuth |
| Day 35 | Web 安全防护 | OWASP Top 10、XSS/CSRF/SQLi |
| Day 36 | Redis 基础与缓存策略 | 数据结构、Cache-Aside |
| Day 37 | Redis 进阶应用 | 排行榜、分布式锁、缓存问题 |
| Day 38 | 消息队列与异步任务 | BullMQ、重试、死信队列 |
| Day 39 | 文件上传与存储 | Multer、S3、图片处理 |
| Day 40 | 🏆 里程碑:安全加固版博客 | 安全审计、性能测试 |
掌握 Docker 容器化、CI/CD 自动化和云端部署,让应用从本地走向生产环境。
| 天数 | 主题 | 关键词 |
|---|---|---|
| Day 41 | Docker 基础 | Dockerfile、多阶段构建 |
| Day 42 | Docker Compose 编排 | 多服务编排、网络、数据卷 |
| Day 43 | CI/CD 流水线 | GitHub Actions、自动化 |
| Day 44 | 云部署实战 | Vercel/Railway、域名配置 |
| Day 45 | 日志、监控与健康检查 | Pino、Sentry、健康检查 |
从零构建 SaaS 级任务管理平台(类似简化版 Linear),覆盖全栈工程师核心技能点。
| 天数 | 主题 | 关键词 |
|---|---|---|
| Day 46 | 项目规划与架构设计 | 需求分析、ER 图、API 设计 |
| Day 47 | 项目脚手架搭建 | Next.js + tRPC/NestJS、Prisma |
| Day 48 | 用户系统与团队管理 | 注册登录、组织管理、RBAC |
| Day 49 | 项目与任务 CRUD | 状态机、优先级、标签 |
| Day 50 | 看板与列表视图 | 拖拽排序、筛选聚合 |
| Day 51 | 实时通信 | WebSocket、Socket.io |
| Day 52 | 通知与异步任务 | 站内通知、邮件队列 |
| Day 53 | 数据看板与统计 | 聚合查询、趋势图 |
| Day 54 | 前端集成与联调 | Next.js、React Query |
| Day 55 | 🏆 里程碑:项目部署上线 | Docker、CI/CD、云部署 |
补齐测试能力,深入性能优化,建立系统设计方法论,打磨简历项目。
| 天数 | 主题 | 关键词 |
|---|---|---|
| Day 56 | 测试策略与实战 | Jest、Supertest、Playwright |
| Day 57 | 性能优化 | Profiling、压测、查询优化 |
| Day 58 | 系统设计思维 | CAP、负载均衡、经典设计题 |
| Day 59 | 简历包装与面试准备 | 项目描述、知识点清单 |
| Day 60 | 总结与进阶路线 | 知识体系、进阶方向 |
本教程围绕三个渐进式项目展开。博客系统(Day 16-30 部分)已有完整可运行的参考实现,见 solutions/blog/;其余项目代码与脚手架会随更新进度逐步补充。
用原生 Node.js 构建,不使用任何框架,理解底层原理。
用 NestJS + PostgreSQL + Redis 构建,覆盖后端核心技能。Day 16-30 已完成并封版 v1.0(solutions/blog/:blog-db 裸 SQL、blog-prisma Prisma playground、blog-api 生产级 API,含分页/搜索/并发控制/Swagger 文档);Day 31-40 的认证、缓存、队列待补。
全栈项目,用 Next.js + NestJS/tRPC + PostgreSQL + Redis + Docker 构建,作为阶段性综合实战目标。
| 层次 | 技术 | 用途 |
|---|---|---|
| 运行时 | Node.js v20+ | JavaScript 服务端运行时 |
| 语言 | TypeScript | 类型安全 |
| 后端框架 | NestJS | 企业级框架 |
| ORM | Prisma | 数据库访问层 |
| 数据库 | PostgreSQL | 关系型数据库 |
| 缓存 | Redis | 缓存与消息队列 |
| 全栈框架 | Next.js | 前后端一体化 |
| 容器化 | Docker | 部署与环境管理 |
| CI/CD | GitHub Actions | 自动化流水线 |
60-days-nodejs/
├── README.md # 👈 你在这里
├── ROADMAP.md # 60 天完整路线图
├── days/
│ ├── day-01/
│ │ ├── README.md # 当天学习内容
│ │ ├── exercises/ # 部分天数会提供练习模板
│ │ └── solutions/ # 部分天数会提供参考答案
│ ├── day-02/
│ └── ... # Day 03 ~ Day 60
├── solutions/ # 里程碑参考实现(可运行)
│ ├── blog/ # 博客系统(Day 16-30)
│ │ ├── blog-db/ # 裸 SQL:Docker PG + migrations + 练习
│ │ ├── blog-prisma/ # Prisma playground(Day 25-26)
│ │ └── blog-api/ # 生产级 NestJS API(v1.0 + Day 32 JWT + Day 33 RBAC + Day 34 OAuth)
│ └── auth-basics/ # Day 31:手写 JWT + Session vs JWT 对比(零依赖)
├── cheatsheets/ # 速查手册
│ ├── sql-cheatsheet.md
│ ├── docker-cheatsheet.md
│ └── nodejs-cheatsheet.md
└── resources/
└── recommended-reading.md # 推荐阅读资源
工作日(3-4 小时):
- 📖 1.5 小时 — 阅读当天 README,理解核心知识点
- 💻 2 小时 — 完成实践练习,提交代码
- 📝 0.5 小时 — 整理学习笔记
周末(4-6 小时):
- 🔨 3 小时 — 项目实战
- 📖 1.5 小时 — 扩展阅读,深入研究
- 📝 0.5 小时 — 复盘本周进度
欢迎贡献!你可以通过以下方式参与:
- 报告问题 — 发现错误或过时内容?请提交 Issue
- 改进内容 — 修复错误、补充知识点、优化代码示例
- 翻译 — 帮助将教程翻译成其他语言
- 分享 — Star ⭐ 这个仓库,分享给需要的人
如果你准备提交内容,欢迎先通过 Issue 或 PR 说明你想补充的部分,我们会逐步完善协作规范。
- 《Designing Data-Intensive Applications》 — 系统设计圣经
- 《SQL Antipatterns》 — 避免数据库设计常见错误
- 《Web Scalability for Startup Engineers》 — 系统扩展性入门
- NestJS 官方文档 — 框架学习主资料
- Prisma 官方文档 — ORM 学习资料
- PostgreSQL Tutorial — SQL 练习
- ByteByteGo — 系统设计入门
- Docker 官方 Getting Started — 容器化入门
- LeetCode Database — SQL 练习
- HackerRank SQL — SQL 巩固
MIT,详见 LICENSE。
如果这个教程对你有帮助,请给个 ⭐ Star 支持一下!
如果你在学习过程中有任何问题,或想获取更多前端 / 全栈学习内容,欢迎扫码联系 👇
![]() 微信 扫码添加好友,备注「nodejs」 |
![]() 公众号 扫码关注,获取更多学习资料 |

