[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-1572":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":8,"htmlUrl":8,"language":9,"languages":8,"totalLinesOfCode":8,"stars":10,"forks":11,"watchers":12,"openIssues":13,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":15,"stars7d":16,"stars30d":17,"stars90d":14,"forks30d":14,"starsTrendScore":17,"compositeScore":18,"rankGlobal":8,"rankLanguage":8,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":22,"hasPages":20,"topics":23,"createdAt":8,"pushedAt":8,"updatedAt":24,"readmeContent":25,"aiSummary":26,"trendingCount":14,"starSnapshotCount":14,"syncStatus":27,"lastSyncTime":28,"discoverSource":29},1572,"60-days-nodejs","crisweb1994\u002F60-days-nodejs","crisweb1994",null,"TypeScript",308,39,7,1,0,29,34,87,87.51,"MIT License",false,"main",true,[],"2026-06-12 04:00:10","\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fnodejs.org\u002Fstatic\u002Flogos\u002FnodejsDark.svg\" width=\"200\" alt=\"Node.js Logo\" \u002F>\n\u003C\u002Fp>\n\n\u003Ch1 align=\"center\">60 天学会 Node.js 全栈开发\u003C\u002Fh1>\n\n\u003Cp align=\"center\">\n  \u003Cstrong>一套面向前端工程师的 60 天 Node.js 全栈系统学习路线\u003C\u002Fstrong>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  从 Node.js 基础原理到后端框架、数据库、缓存、部署上线与全栈项目实战，帮助你系统补齐全栈能力。\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cstrong>🚧 WIP：\u003C\u002Fstrong> 当前已完整整理 Day 1-16，Day 17-60 正在持续补充详细讲解、练习与参考答案。\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"#快速开始\">快速开始\u003C\u002Fa> •\n  \u003Ca href=\"#课程大纲\">课程大纲\u003C\u002Fa> •\n  \u003Ca href=\"#项目实战\">项目实战\u003C\u002Fa> •\n  \u003Ca href=\"#贡献指南\">贡献指南\u003C\u002Fa> •\n  \u003Ca href=\".\u002FROADMAP.md\">完整路线图\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F天数-60天-brightgreen\" alt=\"60 Days\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F每天-3~4小时-blue\" alt=\"3-4 hours\u002Fday\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F语言-TypeScript-3178c6\" alt=\"TypeScript\" \u002F>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-yellow\" alt=\"MIT License\" \u002F>\n\u003C\u002Fp>\n\n---\n\n## 项目简介\n\n市面上的 Node.js 教程要么太入门（只教你写 Hello World），要么太零散（几百篇博客拼不出体系）。\n\n这个仓库的目标是：**用 60 天时间，帮助有前端基础的工程师系统掌握 Node.js 全栈开发**，从核心原理到生产部署，逐步建立完整的全栈知识体系和项目交付能力。\n\n> 当前状态说明：仓库目前优先完成了 **Day 1-16** 的详细内容；**Day 17-60** 已建立路线图与每日页面骨架，详细正文、练习模板与参考答案会继续迭代补充。\n\n### 这个仓库有什么特点？\n\n- 以天为单位组织内容，学习节奏清晰，适合持续推进\n- 从 Node.js 核心原理一路覆盖 NestJS、PostgreSQL、Redis、Docker、Next.js\n- 每个阶段都围绕里程碑项目设计，不只学知识点，也强调项目交付能力\n- 面向前端工程师设计学习路径，重点补齐服务端、数据库、工程化与系统设计能力\n\n### 适合谁？\n\n- ✅ 有 1-3 年前端经验，想转全栈的工程师\n- ✅ 熟悉 JavaScript\u002FTypeScript，想深入 Node.js 服务端的开发者\n- ✅ 想系统性补齐后端知识短板的前端工程师\n- ⚠️ 完全的编程新手可能需要先学习 JavaScript 基础\n\n### 你会学到什么？\n\n| 能力维度 | 具体技能 |\n|---------|--------|\n| **服务端开发** | Node.js 核心原理、NestJS 框架、REST API 设计、中间件体系 |\n| **数据库** | PostgreSQL、SQL 编写、Prisma ORM、数据库建模与优化 |\n| **认证安全** | JWT、OAuth 2.0、RBAC 权限、Web 安全防护 |\n| **缓存队列** | Redis 缓存策略、BullMQ 消息队列、实时通信 |\n| **DevOps** | Docker 容器化、CI\u002FCD 流水线、云部署、日志监控 |\n| **系统设计** | 分布式基础概念、性能优化、系统设计面试方法论 |\n\n---\n\n## 快速开始\n\n### 前置要求\n\n- **Node.js** v20+（推荐使用 [nvm](https:\u002F\u002Fgithub.com\u002Fnvm-sh\u002Fnvm) 管理版本）\n- **Git**（版本控制）\n- **VS Code**（推荐编辑器）\n- **Docker Desktop**（Day 21 起需要）\n- 每天 **3-4 小时**学习时间\n\n### 开始学习\n\n```bash\n# 克隆仓库\ngit clone https:\u002F\u002Fgithub.com\u002Fcris1994.wang\u002F60-days-nodejs.git\ncd 60-days-nodejs\n\n# 从 Day 1 开始\ncd days\u002Fday-01\n# 阅读 README.md 开始学习\n```\n\n### 学习方式\n\n- 按天推进，共 60 天完成完整学习闭环\n- 每天投入 3 到 4 小时，兼顾系统学习与动手实践\n- 建议按顺序学习，避免跳过阶段性里程碑\n- 当前建议优先完成 Day 1-16，后续天数可结合路线图、推荐资源和你自己的练习持续推进\n\n### 学习建议\n\n1. **按顺序学习** — 每天的内容建立在前一天的基础之上\n2. **动手编码** — 光看不练等于没学，每天都要完成实践练习\n3. **写学习笔记** — 用自己的话总结当天知识点\n4. **提交代码** — 每天都向自己的仓库提交代码，保持 commit 记录\n5. **不要跳过里程碑** — 每 5-10 天的里程碑项目是检验学习效果的最佳方式\n\n---\n\n## 课程大纲\n\n### 🟢 阶段一：Node.js 核心基础（Day 1-15）\n\n从零搭建开发环境，深入理解 Node.js 运行时原理，用原生 API 手写 HTTP 服务器和 REST API。\n\n| 天数 | 主题 | 关键词 |\n|-----|------|-------|\n| Day 01 | [环境搭建与 Node.js 初印象](.\u002Fdays\u002Fday-01\u002F) | 安装、REPL、Hello World |\n| Day 02 | [模块系统与包管理](.\u002Fdays\u002Fday-02\u002F) | CJS\u002FESM、npm\u002Fpnpm |\n| Day 03 | [核心模块（上）：fs、path、os](.\u002Fdays\u002Fday-03\u002F) | 文件系统、路径处理 |\n| Day 04 | [核心模块（下）：events、stream](.\u002Fdays\u002Fday-04\u002F) | EventEmitter、Buffer、Stream |\n| Day 05 | [事件循环深度解析](.\u002Fdays\u002Fday-05\u002F) | Event Loop、libuv、异步 I\u002FO |\n| Day 06 | [异步编程模式](.\u002Fdays\u002Fday-06\u002F) | Promise、async\u002Fawait、并发控制 |\n| Day 07 | [HTTP 协议基础](.\u002Fdays\u002Fday-07\u002F) | 状态码、请求头、node:http |\n| Day 08 | [手写 REST API（上）](.\u002Fdays\u002Fday-08\u002F) | 路由匹配、请求体解析 |\n| Day 09 | [手写 REST API（下）](.\u002Fdays\u002Fday-09\u002F) | 中间件模式、CORS、错误处理 |\n| Day 10 | [🏆 里程碑：迷你项目 Review](.\u002Fdays\u002Fday-10\u002F) | 代码重构、README 文档 |\n| Day 11 | [TypeScript 服务端开发](.\u002Fdays\u002Fday-11\u002F) | tsconfig、类型系统、tsx |\n| Day 12 | [RESTful API 设计原则](.\u002Fdays\u002Fday-12\u002F) | 资源命名、版本化、OpenAPI |\n| Day 13 | [进程管理与 Worker Threads](.\u002Fdays\u002Fday-13\u002F) | child_process、cluster、多线程 |\n| Day 14 | [错误处理与调试技巧](.\u002Fdays\u002Fday-14\u002F) | 自定义错误、调试工具 |\n| Day 15 | [🎯 阶段一总结与测验](.\u002Fdays\u002Fday-15\u002F) | 知识回顾、编码测验 |\n\n### 🔵 阶段二：后端框架与数据库（Day 16-30）\n\n深入 NestJS 企业级框架，掌握 PostgreSQL 和 Prisma ORM，构建完整的博客系统后端。\n\n| 天数 | 主题 | 关键词 |\n|-----|------|-------|\n| Day 16 | [NestJS 入门：架构与核心概念](.\u002Fdays\u002Fday-16\u002F) | IoC\u002FDI、Module\u002FController\u002FService |\n| Day 17 | [NestJS 深入：请求生命周期](.\u002Fdays\u002Fday-17\u002F) | Middleware、Guard、Interceptor |\n| Day 18 | [NestJS 数据验证与 DTO](.\u002Fdays\u002Fday-18\u002F) | class-validator、Pipe |\n| Day 19 | [NestJS 异常处理与响应标准化](.\u002Fdays\u002Fday-19\u002F) | ExceptionFilter、统一响应 |\n| Day 20 | [🏆 里程碑：NestJS 博客 API](.\u002Fdays\u002Fday-20\u002F) | 内存数据、完整 CRUD |\n| Day 21 | [PostgreSQL 入门](.\u002Fdays\u002Fday-21\u002F) | Docker 安装、SQL 基础 |\n| Day 22 | [SQL 进阶：JOIN 与子查询](.\u002Fdays\u002Fday-22\u002F) | 多表查询、聚合函数 |\n| Day 23 | [SQL 进阶：索引与性能](.\u002Fdays\u002Fday-23\u002F) | B+ 树、EXPLAIN ANALYZE |\n| Day 24 | [数据库建模实战](.\u002Fdays\u002Fday-24\u002F) | 范式、ER 图、多对多关系 |\n| Day 25 | [Prisma ORM 入门](.\u002Fdays\u002Fday-25\u002F) | Schema、Migration、CRUD |\n| Day 26 | [Prisma ORM 进阶](.\u002Fdays\u002Fday-26\u002F) | 事务、N+1 问题、原生 SQL |\n| Day 27 | [NestJS + Prisma 整合](.\u002Fdays\u002Fday-27\u002F) | Repository 模式、Service 层 |\n| Day 28 | [分页、搜索与排序](.\u002Fdays\u002Fday-28\u002F) | Cursor 分页、模糊搜索 |\n| Day 29 | [数据库事务与并发控制](.\u002Fdays\u002Fday-29\u002F) | ACID、隔离级别、乐观锁 |\n| Day 30 | [🏆 里程碑：博客系统完整版](.\u002Fdays\u002Fday-30\u002F) | Swagger 文档、代码重构 |\n\n### 🟡 阶段三：认证、安全与缓存（Day 31-40）\n\n实现生产级认证授权体系，集成 Redis 缓存和消息队列，构建安全加固版博客系统。\n\n| 天数 | 主题 | 关键词 |\n|-----|------|-------|\n| Day 31 | [认证基础：Session vs JWT](.\u002Fdays\u002Fday-31\u002F) | 有状态\u002F无状态、Token 结构 |\n| Day 32 | [JWT 认证实战](.\u002Fdays\u002Fday-32\u002F) | bcrypt、双 Token、登录注册 |\n| Day 33 | [RBAC 权限模型](.\u002Fdays\u002Fday-33\u002F) | 角色权限、Guard、资源级权限 |\n| Day 34 | [OAuth 2.0 与第三方登录](.\u002Fdays\u002Fday-34\u002F) | 授权码模式、GitHub OAuth |\n| Day 35 | [Web 安全防护](.\u002Fdays\u002Fday-35\u002F) | OWASP Top 10、XSS\u002FCSRF\u002FSQLi |\n| Day 36 | [Redis 基础与缓存策略](.\u002Fdays\u002Fday-36\u002F) | 数据结构、Cache-Aside |\n| Day 37 | [Redis 进阶应用](.\u002Fdays\u002Fday-37\u002F) | 排行榜、分布式锁、缓存问题 |\n| Day 38 | [消息队列与异步任务](.\u002Fdays\u002Fday-38\u002F) | BullMQ、重试、死信队列 |\n| Day 39 | [文件上传与存储](.\u002Fdays\u002Fday-39\u002F) | Multer、S3、图片处理 |\n| Day 40 | [🏆 里程碑：安全加固版博客](.\u002Fdays\u002Fday-40\u002F) | 安全审计、性能测试 |\n\n### 🟠 阶段四：DevOps 与部署（Day 41-45）\n\n掌握 Docker 容器化、CI\u002FCD 自动化和云端部署，让应用从本地走向生产环境。\n\n| 天数 | 主题 | 关键词 |\n|-----|------|-------|\n| Day 41 | [Docker 基础](.\u002Fdays\u002Fday-41\u002F) | Dockerfile、多阶段构建 |\n| Day 42 | [Docker Compose 编排](.\u002Fdays\u002Fday-42\u002F) | 多服务编排、网络、数据卷 |\n| Day 43 | [CI\u002FCD 流水线](.\u002Fdays\u002Fday-43\u002F) | GitHub Actions、自动化 |\n| Day 44 | [云部署实战](.\u002Fdays\u002Fday-44\u002F) | Vercel\u002FRailway、域名配置 |\n| Day 45 | [日志、监控与健康检查](.\u002Fdays\u002Fday-45\u002F) | Pino、Sentry、健康检查 |\n\n### 🔴 阶段五：全栈项目实战（Day 46-55）\n\n从零构建 SaaS 级任务管理平台（类似简化版 Linear），覆盖全栈工程师核心技能点。\n\n| 天数 | 主题 | 关键词 |\n|-----|------|-------|\n| Day 46 | [项目规划与架构设计](.\u002Fdays\u002Fday-46\u002F) | 需求分析、ER 图、API 设计 |\n| Day 47 | [项目脚手架搭建](.\u002Fdays\u002Fday-47\u002F) | Next.js + tRPC\u002FNestJS、Prisma |\n| Day 48 | [用户系统与团队管理](.\u002Fdays\u002Fday-48\u002F) | 注册登录、组织管理、RBAC |\n| Day 49 | [项目与任务 CRUD](.\u002Fdays\u002Fday-49\u002F) | 状态机、优先级、标签 |\n| Day 50 | [看板与列表视图](.\u002Fdays\u002Fday-50\u002F) | 拖拽排序、筛选聚合 |\n| Day 51 | [实时通信](.\u002Fdays\u002Fday-51\u002F) | WebSocket、Socket.io |\n| Day 52 | [通知与异步任务](.\u002Fdays\u002Fday-52\u002F) | 站内通知、邮件队列 |\n| Day 53 | [数据看板与统计](.\u002Fdays\u002Fday-53\u002F) | 聚合查询、趋势图 |\n| Day 54 | [前端集成与联调](.\u002Fdays\u002Fday-54\u002F) | Next.js、React Query |\n| Day 55 | [🏆 里程碑：项目部署上线](.\u002Fdays\u002Fday-55\u002F) | Docker、CI\u002FCD、云部署 |\n\n### 🟣 阶段六：测试、优化与系统设计（Day 56-60）\n\n补齐测试能力，深入性能优化，建立系统设计方法论，打磨简历项目。\n\n| 天数 | 主题 | 关键词 |\n|-----|------|-------|\n| Day 56 | [测试策略与实战](.\u002Fdays\u002Fday-56\u002F) | Jest、Supertest、Playwright |\n| Day 57 | [性能优化](.\u002Fdays\u002Fday-57\u002F) | Profiling、压测、查询优化 |\n| Day 58 | [系统设计思维](.\u002Fdays\u002Fday-58\u002F) | CAP、负载均衡、经典设计题 |\n| Day 59 | [简历包装与面试准备](.\u002Fdays\u002Fday-59\u002F) | 项目描述、知识点清单 |\n| Day 60 | [总结与进阶路线](.\u002Fdays\u002Fday-60\u002F) | 知识体系、进阶方向 |\n\n---\n\n## 项目实战\n\n本教程围绕三个渐进式项目展开。当前仓库优先提供学习路线与每日文档，项目代码与脚手架会随更新进度逐步补充。\n\n### 1. 🟢 迷你 TODO API（Day 8-10）\n用原生 Node.js 构建，不使用任何框架，理解底层原理。\n\n### 2. 🔵 博客系统（Day 16-40）\n用 NestJS + PostgreSQL + Redis 构建，覆盖后端核心技能。\n\n### 3. 🔴 SaaS 任务管理平台（Day 46-55）\n全栈项目，用 Next.js + NestJS\u002FtRPC + PostgreSQL + Redis + Docker 构建，作为阶段性综合实战目标。\n\n---\n\n## 技术栈\n\n| 层次 | 技术 | 用途 |\n|-----|------|-----|\n| 运行时 | Node.js v20+ | JavaScript 服务端运行时 |\n| 语言 | TypeScript | 类型安全 |\n| 后端框架 | NestJS | 企业级框架 |\n| ORM | Prisma | 数据库访问层 |\n| 数据库 | PostgreSQL | 关系型数据库 |\n| 缓存 | Redis | 缓存与消息队列 |\n| 全栈框架 | Next.js | 前后端一体化 |\n| 容器化 | Docker | 部署与环境管理 |\n| CI\u002FCD | GitHub Actions | 自动化流水线 |\n\n---\n\n## 目录结构\n\n```\n60-days-nodejs\u002F\n├── README.md                   # 👈 你在这里\n├── ROADMAP.md                  # 60 天完整路线图\n├── days\u002F\n│   ├── day-01\u002F\n│   │   ├── README.md           # 当天学习内容\n│   │   ├── exercises\u002F          # 部分天数会提供练习模板\n│   │   └── solutions\u002F          # 部分天数会提供参考答案\n│   ├── day-02\u002F\n│   └── ...                     # Day 03 ~ Day 60\n├── projects\u002F                   # 里程碑项目代码预留目录，内容持续补充\n├── cheatsheets\u002F                # 速查手册\n│   ├── sql-cheatsheet.md\n│   ├── docker-cheatsheet.md\n│   └── nodejs-cheatsheet.md\n└── resources\u002F\n    └── recommended-reading.md  # 推荐阅读资源\n```\n\n---\n\n## 每日学习时间建议\n\n**工作日（3-4 小时）：**\n- 📖 1.5 小时 — 阅读当天 README，理解核心知识点\n- 💻 2 小时 — 完成实践练习，提交代码\n- 📝 0.5 小时 — 整理学习笔记\n\n**周末（4-6 小时）：**\n- 🔨 3 小时 — 项目实战\n- 📖 1.5 小时 — 扩展阅读，深入研究\n- 📝 0.5 小时 — 复盘本周进度\n\n---\n\n## 贡献指南\n\n欢迎贡献！你可以通过以下方式参与：\n\n1. **报告问题** — 发现错误或过时内容？请提交 Issue\n2. **改进内容** — 修复错误、补充知识点、优化代码示例\n3. **翻译** — 帮助将教程翻译成其他语言\n4. **分享** — Star ⭐ 这个仓库，分享给需要的人\n\n如果你准备提交内容，欢迎先通过 Issue 或 PR 说明你想补充的部分，我们会逐步完善协作规范。\n\n---\n\n## 推荐资源\n\n### 书籍\n1. 《Designing Data-Intensive Applications》 — 系统设计圣经\n2. 《SQL Antipatterns》 — 避免数据库设计常见错误\n3. 《Web Scalability for Startup Engineers》 — 系统扩展性入门\n\n### 在线资源\n1. [NestJS 官方文档](https:\u002F\u002Fdocs.nestjs.com\u002F) — 框架学习主资料\n2. [Prisma 官方文档](https:\u002F\u002Fwww.prisma.io\u002Fdocs) — ORM 学习资料\n3. [PostgreSQL Tutorial](https:\u002F\u002Fwww.postgresqltutorial.com\u002F) — SQL 练习\n4. [ByteByteGo](https:\u002F\u002Fbytebytego.com\u002F) — 系统设计入门\n5. [Docker 官方 Getting Started](https:\u002F\u002Fdocs.docker.com\u002Fget-started\u002F) — 容器化入门\n\n### 练习平台\n1. [LeetCode Database](https:\u002F\u002Fleetcode.com\u002Fproblemset\u002Fdatabase\u002F) — SQL 练习\n2. [HackerRank SQL](https:\u002F\u002Fwww.hackerrank.com\u002Fdomains\u002Fsql) — SQL 巩固\n\n---\n\n## License\n\nMIT，详见 [LICENSE](.\u002FLICENSE)。\n\n---\n\n\u003Cp align=\"center\">如果这个教程对你有帮助，请给个 ⭐ Star 支持一下！\u003C\u002Fp>\n\n---\n\n## 联系作者\n\n如果你在学习过程中有任何问题，或想获取更多前端 \u002F 全栈学习内容，欢迎扫码联系 👇\n\n\u003Cp align=\"center\">\n  \u003Ctable>\n    \u003Ctr>\n      \u003Ctd align=\"center\">\n        \u003Cimg src=\".\u002Fresources\u002Fimages\u002Fwehcat_qrcode.jpg\" width=\"180\" alt=\"微信二维码\" \u002F>\u003Cbr\u002F>\n        \u003Cstrong>微信\u003C\u002Fstrong>\u003Cbr\u002F>扫码添加好友，备注「nodejs」\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\" style=\"padding-left: 40px\">\n        \u003Cimg src=\".\u002Fresources\u002Fimages\u002Fofficial_qrcode.jpg\" width=\"180\" alt=\"公众号二维码\" \u002F>\u003Cbr\u002F>\n        \u003Cstrong>公众号\u003C\u002Fstrong>\u003Cbr\u002F>扫码关注，获取更多学习资料\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftable>\n\u003C\u002Fp>\n","这个项目是一个面向前端工程师的60天Node.js全栈开发学习路线。它从Node.js的基础原理讲起，逐步覆盖到后端框架（如NestJS）、数据库（如PostgreSQL）、缓存（如Redis）、容器化（Docker）以及全栈项目实战等技术点。每个阶段都围绕具体的里程碑项目设计，旨在帮助开发者不仅掌握理论知识，还能具备实际项目交付能力。该项目特别适合有1-3年前端经验、熟悉JavaScript\u002FTypeScript并希望深入学习Node.js服务端开发或想系统性补齐后端知识短板的前端工程师使用。通过每天3-4小时的学习，参与者可以按照清晰的学习节奏推进，从零开始构建完整的全栈开发技能。",2,"2026-06-11 02:44:43","CREATED_QUERY"]