从原生到框架,补齐后端开发的思维缺口

对于前端开发者而言,Node.js 往往是通向全栈的关键一步。但这门课要解决的痛点很具体:很多学习者知道要学 Node,但面对从零搭建一个服务端应用时,依然习惯性地停留在“调用 API”的层面,缺乏对请求生命周期、中间件机制、数据库连接以及项目架构的完整认知。本课程以开发一个博客系统为核心线索,不是为了演示语法,而是带你走一遍完整的服务端开发闭环。课程从最原始的 Node.js 原生代码写起,让你看清底层的 HTTP 处理逻辑,这是很多速成教程忽略的一环。只有理解了原生层面的繁琐,后续学习 Express 和 Koa2 的洋葱模型、路由封装、中间件传递才会真正内化,而不是死记硬背用法。

框架演进与数据层实战

课程的核心价值在于通过同一个项目,展示技术栈的演进过程。你将看到如何用 Express 快速搭建原型,再用 Koa2 重构以获得更简洁的异步处理体验,最后引入 Nest.js 这一企业级框架,学习如何基于 TypeScript 和依赖注入构建可维护的大型项目架构。这种对比学习能让你清楚地知道每种框架适用的场景,以及为什么在复杂业务中 Nest.js 的模块化设计更具优势。同时,课程并未止步于代码编写,而是深入涵盖了 MySQL、MongoDB 和 Redis 三种主流数据库的集成方案。你将学会关系型数据与文档型数据的选型逻辑,以及如何利用 Redis 做缓存优化,这是后端开发中极其重要的性能调优技能。

建议学习路径与练习配合

  • 基础薄弱者:务必从头开始,认真手写原生 Node.js 部分,不要跳过。这是理解后续框架封装原理的基础。
  • 有基础者:重点对比 Express 与 Koa2 在处理异步请求上的差异,重点攻克 Nest.js 的模块化和装饰器机制。
  • 数据库章节:建议边看边动手配置本地或测试环境的数据库,特别是 MongoDB 的非结构化设计与 MySQL 的表关联设计对比。
  • 部署环节:最后的学习资源包含将项目部署到云服务器的完整流程,建议配合云服务器实际演练,掌握 PM2 进程管理、环境变量配置及 Nginx 反向代理等上线必备技能。

学完本课程,你将能够独立完成一个具备用户认证、数据读写、缓存优化及自动化部署的全栈服务端项目,并清楚在不同规模项目下选择合适的 Node.js 框架。资料包中的示例代码应作为参考而非抄写对象,关键在于理解每个重构步骤背后的工程决策逻辑。

课程介绍

2024 版:Node.js+Express+Koa2+Nest.js 开发服务端,。Node.js 已经成为前端开发者不可或缺的技能之一。无论是求职面试还是日常开发,对Node.js的熟悉度已成为一项基本要求。本课程以一个博客项目为例,首先介绍后端开发的基础概念,然后使用Node.js原生代码进行开发。随后,通过使用Express、Koa2和Nest.js等流行框架对项目进行逐步重构,涵盖MySQL、MongoDB和Redis等数据库技术。课程的最后阶段,将指导您如何将代码部署到云服务器。通过这一系列的学习,您将逐步掌握Node.js的关键技能,向成为全栈工程师的目标迈进。

课程目录

2024 版:Node.js+Express+Koa2+Nest.js 开发服务端,。Node.js 已经成为前端开发者不可或缺的技能之一。无论是求职面试还是日常开发,对Node.js的熟悉度已成为一项基本要求。本课程以一个博客项目为例,首先介绍后端开发的基础概念,然后使用Node.js原生代码进行开发。随后,通过使用Express、Koa2和Nest.js等流行框架对项目进行逐步重构,涵盖MySQL、MongoDB和Redis等数据库技术。课程的最后阶段,将指导您如何将代码部署到云服务器。通过这一系列的学习,您将逐步掌握Node.js的关键技能,向成为全栈工程师的目标迈进。
├── 第1章 课程介绍/
│ ├── [ 14M] 1-1课程导学
│ └── [3.2M] 1-2课程适用于最新版node.js
├── 第2章 初始服务端(2022升级)/
│ ├── [ 18M] 2-1你真的了解服务端吗&
│ ├── [ 21M] 2-2-什么是服务端-职责和流程
│ ├── [ 14M] 2-3-前端和服务端的交互-HTTP协议
│ ├── [ 27M] 2-4-前端和服务端的交互-通过博客系统做演示
│ ├── [8.1M] 2-5-一个网页可能对应多个服务端
│ ├── [ 14M] 2-6-路由-服务端的入口规则
│ ├── [8.8M] 2-7-路由的实现离不开Request
│ ├── [ 14M] 2-8-数据库-存储和查询数据
│ ├── [6.3M] 2-9-为什么选择nodejs开发服务端
│ ├── [ 16M] 2-10-高效学习nodejs的“三步曲”
│ ├── [7.2M] 2-11-要主动排查错误,不做伸手党
│ └── [6.0M] 2-12-章总结
├── 第3章 nodejs 介绍/
│ ├── [9.8M] 3-1下载和安装node.js
│ ├── [ 11M] 3-2nodejs和js的区别
│ ├── [ 16M] 3-3commonjs-演示
│ ├── [ 17M] 3-4debugger
│ ├── [ 24M] 3-5debuger之inspect协议
│ ├── [ 18M] 3-6server端和前端的区别
│ └── [3.3M] 3-7总结
├── 第4章 项目介绍/
│ ├── [ 10M] 4-1项目需求分析
│ └── [ 15M] 4-2技术方案
├── 第5章 开发博客项目之接口/
│ ├── [ 28M] 5-1http-概述
│ ├── [ 20M] 5-2处理get请求
│ ├── [ 25M] 5-3处理post请求
│ ├── [ 17M] 5-4处理http请求的综合示例
│ ├── [ 30M] 5-5搭建开发环境
│ ├── [ 44M] 5-6初始化路由
│ ├── [ 41M] 5-7开发路由(博客列表路由)(上)
│ ├── [ 42M] 5-8开发路由(博客详情路由)(下)
│ ├── [ 19M] 5-9开发路由(处理POSTData)
│ ├── [ 25M] 5-10开发路由(新建和更新博客路由)
│ ├── [ 16M] 5-11开发路由(删除博客路由和登录路由)
│ └── [6.5M] 5-12补充:路由和API
├── 第6章 开发博客项目之数据存储/
│ ├── [ 10M] 6-1MySql介绍
│ ├── [ 33M] 6-2数据库操作(创建和增、删、查)
│ ├── [ 37M] 6-3数据库操作(更新)
│ ├── [ 22M] 6-4nodejs操作mysql
│ ├── [ 24M] 6-5nodejs链接mysql做成工具
│ ├── [ 35M] 6-6API对接mysql(博客列表)
│ ├── [ 35M] 6-7API对接mysql(博客详情和新建)
│ ├── [ 30M] 6-8API对接mysql(博客更新和删除)
│ ├── [ 17M] 6-9API对接mysql(登录)
│ └── [2.4M] 6-10总结
├── 第7章 博客项目之登录/
│ ├── [6.1M] 7-1开始
│ ├── [ 23M] 7-2cookie-介绍
│ ├── [ 44M] 7-3cookie用于登录验证
│ ├── [8.3M] 7-4cookie做限制(1)
│ ├── [ 20M] 7-5cookie做限制(2)
│ ├── [ 30M] 7-6session介绍
│ ├── [ 22M] 7-7session演示
│ ├── [ 19M] 7-8从session到redis
│ ├── [ 10M] 7-9redis介绍
│ ├── [ 13M] 7-10nodejs链接redis的demo
│ ├── [9.1M] 7-11升级npm-redis-v4【代码redis-test】(2022新)
│ ├── [ 23M] 7-12nodejs连接redis-封装工具函数
│ ├── [ 15M] 7-13升级npm-redis-v4【代码blog-1】(2022新)
│ ├── [ 33M] 7-14session存入redis
│ ├── [ 19M] 7-15完成server端登录的代码
│ ├── [ 20M] 7-16联调-介绍html页面
│ ├── [ 22M] 7-17nginx配置
│ ├── [ 19M] 7-18联调演示与总结
│ └── [ 22M] 7-19通过CORS实现跨域(2022新)
├── 第8章 博客项目之日志/
│ ├── [ 17M] 8-1开始
│ ├── [ 23M] 8-2nodejs文件操作
│ ├── [ 12M] 8-3stream介绍
│ ├── [ 12M] 8-4stream演示(1)
│ ├── [ 21M] 8-5stream演示(2)
│ ├── [ 26M] 8-6写日志
│ ├── [ 13M] 8-7拆分日志
│ ├── [9.0M] 8-8分析日志介绍
│ ├── [ 14M] 8-9readline演示
│ └── [ 12M] 8-10总结
├── 第9章 博客项目之安全/
│ ├── [ 27M] 9-1开始和sql注入
│ ├── [ 27M] 9-2xss攻击
│ ├── [ 34M] 9-3
│ └── [ 15M] 9-4统一总结
├── 第10章 使用 express 重构博客项目/
│ ├── [ 10M] 10-1开始
│ ├── [ 28M] 10-2express安装
│ ├── [ 56M] 10-3介绍express的入口代码
│ ├── [ 30M] 10-4演示express如何处理路由
│ ├── [ 71M] 10-5express中间件
│ ├── [8.9M] 10-6express介绍的总结
│ ├── [ 27M] 10-7express开发博客项目-初始化环境
│ ├── [ 20M] 10-8express处理session
│ ├── [ 37M] 10-9session连接redis
│ ├── [9.6M] 10-10升级npm-redis-v4【代码blog-express】(2022新)
│ ├── [ 14M] 10-11登录中间件
│ ├── [ 35M] 10-12开发路由
│ ├── [3.2M] 10-13介绍morgan
│ ├── [ 43M] 10-14使用morgan写日志
│ ├── [ 14M] 10-15中间件原理介绍
│ ├── [ 85M] 10-16中间件原理-代码实现
│ └── [7.1M] 10-17-总结
├── 第11章 使用 Koa2 重构博客项目/
│ ├── 【更多it资源www.】
│ ├── [ 32M] 11-1开始
│ ├── [ 29M] 11-2介绍koa2
│ ├── [ 26M] 11-3介绍路由
│ ├── [ 11M] 11-4介绍中间件机制
│ ├── [ 25M] 11-5实现session
│ ├── [ 29M] 11-6开发路由-准备工作
│ ├── [ 32M] 11-7开发路由-代码演示
│ ├── [3.4M] 11-8开发路由-(联调)
│ ├── [ 21M] 11-9日志
│ ├── [ 20M] 11-10中间件原理-分析
│ ├── [ 40M] 11-11中间件原理-代码演示
│ └── [7.8M] 11-12总结
├── 第12章 数据库使用 sequelize 重构博客项目(2022升级)/
│ ├── [5.1M] 12-1-章介绍
│ ├── [ 14M] 12-2-介绍ORM和sequelize,以及两者的关系
│ ├── [ 25M] 12-3-sequelize连接mysql数据库,生产环境使用连接池
│ ├── [ 33M] 12-4-sequelize创建数据模型,同步到数据库
│ ├── [ 21M] 12-5-使用sequelize新增数据
│ ├── [ 29M] 12-6-使用sequelize查询数据
│ ├── [ 13M] 12-7-使用sequelize修改和删除数据
│ ├── [ 32M] 12-8-使用sequelize重构博客项目-配置项目环境
│ ├── [ 22M] 12-9-使用sequelize重构博客项目-登录和查询博客列表
│ ├── [ 28M] 12-10-使用sequelize重构博客项目-新增、删除、修改博客
│ ├── [ 14M] 12-11-使用sequelize重构博客项目-联调和测试
│ └── [3.3M] 12-12-章总结
├── 第13章 数据库使用 mongodb 重构博客项目/
│ ├── [6.0M] 13-1本章主要内容
│ ├── [ 24M] 13-2mongodb是文档数据库
│ ├── [1.8M] 13-3安装mongodb-介绍
│ ├── [ 12M] 13-4安装mongodb-mac-安装homebrew
│ ├── [ 11M] 13-5安装mongodb-mac-安装mongodb
│ ├── [ 11M] 13-6安装mongodb-mac-安装compass
│ ├── [8.9M] 13-7安装mongodb-windows(1)
│ ├── [ 14M] 13-8安装mongodb-windows(2)
│ ├── [ 16M] 13-9安装mongodb-windows(3)
│ ├── [ 21M] 13-10用compass操作mongodb
│ ├── [ 31M] 13-11用命令行操作mongodb
│ ├── [ 10M] 13-12mongodb的几个重要概念
│ ├── [ 25M] 13-13nodejs连接mongodb
│ ├── [ 42M] 13-14nodejs操作mongodb-part1
│ ├── [ 20M] 13-15使用mongoose连接mongodb服务
│ ├── [ 20M] 13-16mongoose的Schema和Model
│ ├── [ 42M] 13-17mongoose操作mongodb
│ ├── [ 24M] 13-18博客项目web-server链接mongodb服务端
│ ├── [ 46M] 13-19博客项目web-server使用mognodb数据库
│ ├── [ 33M] 13-20博客项目web-server使用mongodb-联调和测试
│ └── [4.0M] 13-21本章总结~
├── 第14章 线上环境和 PM2 配置/
│ ├── [ 15M] 14-1开始和PM2介绍
│ ├── [ 18M] 14-2常用命令
│ ├── [ 12M] 14-3进程守护
│ ├── [ 17M] 14-4常用配置
│ ├── [ 11M] 14-5多进程
│ └── [4.1M] 14-6总结
├── 第15章 发布到云服务器(2022升级)/
│ ├── [5.6M] 15-1-章介绍
│ ├── [ 14M] 15-2-购买云服务器-如何省钱购买
│ ├── [132K] 15-3Linux命令.pdf
│ ├── [ 17M] 15-4-Linux基础命令-登录和建立信任-part1
│ ├── [ 17M] 15-5-Linux基础命令-远程拷贝和远程执行命令
│ ├── [136K] 15-6CentOS安装软件.pdf
│ ├── [ 11M] 15-7-在云服务安装必备软件-git、nginx、nodejs、wget
│ ├── [ 23M] 15-8在云服务器启动HTML服务和nodejs服务
│ ├── [524K] 15-9开启防火墙.pdf
│ ├── [ 13M] 15-10开启防火墙,让外网可以访问
│ ├── [ 31M] 15-11-手动发布代码到云服务器
│ ├── [ 26M] 15-12-认识Githubactions-自动发布的利器
│ ├── [ 30M] 15-13-Githubactions在虚拟机上建立信任关系
│ ├── [ 31M] 15-14-使用Githubactions自动发布代码到云服务器
│ ├── [6.1M] 15-15-线上数据库需要单独购买
│ ├── [5.5M] 15-16域名和HTTPS证书需要单独购买
│ └── [3.5M] 15-17-章总结
├── 第16章 nodejs 面试真题讲解/
│ ├── [ 17M] 16-1nodejs面试考点梳理-part1
│ ├── [4.9M] 16-2nodejs是什么?和前端js有何区别?
│ ├── [5.2M] 16-3【必考题】nodejs如何调试
│ ├── [9.5M] 16-4commonjs和ES6-Module的区别
│ ├── [ 12M] 16-5回顾浏览器eventloop过程
│ ├── [ 18M] 16-6【必考题】eventloop在浏览器和nodejs的区别
│ ├── [ 37M] 16-7异步代码场景题-考察你对nodejs异步编程的理解
│ ├── [5.7M] 16-8session如何实现登录?
│ ├── [9.8M] 16-9请描述koa2和express的中间件机制
│ ├── [4.7M] 16-10请描述koa2洋葱圈模型
│ ├── [6.4M] 16-11nodejs如何读取大文件?
│ └── [3.2M] 16-12nodejs线上环境为何开启多进程?
├── 第17章 课程总结/
│ ├── [5.2M] 17-1课程总结
│ └── [ 15M] 17-2如何进阶nodejs
└── 第18章 使用Nest.js重构博客服务端(2024 更新)/
├── [6.7M] 18-1开始
├── [ 11M] 18-2创建nest.js项目并运行起来
├── [ 20M] 18-3创建blog模块,创建第一个路由
… 其余 11 项略,目录共 211 项