先问自己:为什么现在还要手写博客系统?

很多转行或想补全技术栈的学员看到标题里的"Web Server 博客”,第一反应往往是怀疑:市面上现成的博客平台这么多,花时间去从零搭建一个,到底有没有实际用处?这里的核心价值不在于“拥有一个博客”,而在于理解现代 Web 后端服务的底层逻辑。市面上现成的 CMS 系统确实方便,但一旦遇到自定义字段、特殊交互逻辑或需要深度二次开发时,往往受限于代码库,难以满足个性化需求。这门课通过实战搭建一个从注册登录到文章发布的全流程系统,让你亲手跑通用户鉴权、数据库操作、路由分发和接口设计。学完这套流程,你就不再是只会调 API 的“搬运工”,而是能独立评估业务需求、设计数据模型并实现核心功能的全栈雏形。

技术栈定位与适用基础

课程明确使用了 Node.js 作为运行环境,配合 Express 和 Koa2 两个主流 Web 框架进行开发。这是一个非常务实的对比学习场景,而非单纯的框架教学。Express 以轻量级和中间件生态著称,适合快速构建传统 RESTful API;而 Koa2 基于 Node.js 原生中间件,更强调异步处理和数据流,性能上限更高,是许多新项目的首选。这门课不会让你从零记忆 API 文档,而是通过同一个博客项目的不同实现路径,让你直观感受到两者在响应式编程、错误处理、跨域控制等场景下的差异。建议的学习基础是:已具备基本的 Node.js 运行环境知识,熟悉 JS 异步编程(Promise/Async-Await),了解 HTTP 请求响应的基本原理。如果你完全没写过后端代码,建议先单独找一套 Node.js 入门课打底,否则在课程后半段处理数据库连接和中间件组合时,可能会因为基础薄弱而卡住。

实战路径与资料配合建议

学习过程不建议按部就班地刷完所有视频,而应遵循“看一节、跑一次、改一处”的闭环节奏。资料包中的项目源码是核心,建议先不要急着全盘复制,而是先跟着视频走,把关键步骤敲在本地环境中。当视频讲到 Express 的中间件注册或 Koa 的 Context 对象时,暂停视频,尝试手动写一段代码实现类似功能,然后运行看是否报错。通过对比“视频演示代码”和“你自己写的代码”的差异,能最快理解框架的设计思想。学完后,你应该能独立搭建一个包含用户管理、文章增删改查、评论互动及富文本编辑的基础博客后端。更重要的是,你掌握了复用框架能力的技巧:未来遇到任何类似业务,你都知道该选 Express 还是 Koa,以及如何配置路由、处理鉴权和对接数据库,而不是盲目寻找现成系统去改来改去。

课程目录

├── 第1章课程介绍/ │ ├── [ 47M] 1-1课程导学 │ └── [ 12M] 1-2课程适用于最新版node.js ├── 第2章初始服务端(2022升级)/ │ ├── [ 69M] 2-10-高效学习nodejs的&ldquo_三步曲&rdquo │ ├── [ 29M] 2-11-要主动排查错误,不做伸手党 │ ├── [ 21M] 2-12-章总结 │ ├── [ 73M] 2-1你真的了解服务端吗 │ ├── [ 85M] 2-2-什么是服务端-职责和流程 │ ├── [ 61M] 2-3-前端和服务端的交互-HTTP协议 │ ├── [ 80M] 2-4-前端和服务端的交互-通过博客系统做演示 │ ├── [ 30M] 2-5-一个网页可能对应多个服务端 │ ├── [ 60M] 2-6-路由-服务端的入口规则 │ ├── [ 35M] 2-7-路由的实现离不开Request │ ├── [ 52M] 2-8-数据库-存储和查询数据 │ └── [ 24M] 2-9-为什么选择nodejs开发服务端 ├── 第3章nodejs介绍/ │ ├── [ 32M] 3-1下载和安装node.js │ ├── [ 39M] 3-2nodejs和js的区别 │ ├── [ 47M] 3-3commonjs-演示 │ ├── [ 50M] 3-4debugger │ ├── [ 52M] 3-5debuger之inspect协议 │ ├── [ 74M] 3-6server端和前端的区别 │ └── [ 16M] 3-7总结 ├── 第4章项目介绍/ │ ├── [ 49M] 4-1项目需求分析 │ └── [ 82M] 4-2技术方案 ├── 第5章开发博客项目之接口/ │ ├── [ 58M] 5-10开发路由(新建和更新博客路由) │ ├── [ 40M] 5-11开发路由(删除博客路由和登录路由) │ ├── [ 19M] 5-12补充:路由和API │ ├── [ 93M] 5-1http-概述 │ ├── [ 88M] 5-2处理get请求 │ ├── [ 65M] 5-3处理post请求 │ ├── [ 44M] 5-4处理http请求的综合示例 │ ├── [ 97M] 5-5搭建开发环境 │ ├── [109M] 5-6初始化路由 │ ├── [ 96M] 5-7开发路由(博客列表路由)(上) │ ├── [ 94M] 5-8开发路由(博客详情路由)(下) │ └── [ 42M] 5-9开发路由(处理POSTData) ├── 第6章开发博客项目之数据存储/ │ ├── [ 11M] 6-10总结 │ ├── [ 44M] 6-1MySql介绍 │ ├── [133M] 6-2数据库操作(创建和增、删、查) │ ├── [ 89M] 6-3数据库操作(更新) │ ├── [ 71M] 6-4nodejs操作mysql │ ├── [ 53M] 6-5nodejs链接mysql做成工具 │ ├── [ 70M] 6-6API对接mysql(博客列表) │ ├── [ 71M] 6-7API对接mysql(博客详情和新建) │ ├── [ 62M] 6-8API对接mysql(博客更新和删除) │ └── [ 35M] 6-9API对接mysql(登录) ├── 第7章博客项目之登录/ │ ├── [ 37M] 7-10nodejs链接redis的demo │ ├── [ 21M] 7-11升级npm-redis-v4【代码redis-test】 │ ├── [ 45M] 7-12nodejs连接redis-封装工具函数 │ ├── [ 33M] 7-13升级npm-redis-v4【代码blog-1】(2

02 │ ├── [ 64M] 7-14session存入redis │ ├── [ 38M] 7-15完成server端登录的代码 │ ├── [ 58M] 7-16联调-介绍html页面 │ ├── [105M] 7-17nginx配置 │ ├── [ 47M] 7-18联调演示与总结 │ ├── [ 62M] 7-19通过CORS实现跨域(2020新) │ ├── [ 62M] 7-19通过CORS实现跨域(2022新) │ ├── [ 24M] 7-1开始 │ ├── [108M] 7-2cookie-介绍 │ ├── [ 93M] 7-3cookie用于登录验证 │ ├── [ 21M] 7-4cookie做限制(1) │ ├── [ 47M] 7-5cookie做限制(2) │ ├── [129M] 7-6session介绍 │ ├── [ 43M] 7-7session演示 │ ├── [ 89M] 7-8从session到redis │ └── [ 27M] 7-9redis介绍 ├── 第8章博客项目之日志/ │ ├── [ 26M] 8-10总结 │ ├── [ 67M] 8-1开始 │ ├── [ 57M] 8-2nodejs文件操作 │ ├── [ 65M] 8-3stream介绍 │ ├── [ 35M] 8-4stream演示(1) │ ├── [ 42M] 8-5stream演示(2) │ ├── [ 57M] 8-6写日志 │ ├── [ 70M] 8-7拆分日志 │ ├── [ 26M] 8-8分析日志介绍 │ └── [ 31M] 8-9readline演示 └── 第9章博客项目之安全/ ├── [126M] 9-1开始和sql注入 ├── [102M] 9-2xss攻击 ├── [123M] 9-3 └── [ 63M] 9-4统一总结 ├── 第10章使用express重构博客项目/ │ ├── [ 22M] 10-10升级npm-redis-v4【代码blog-expre │ ├── [ 29M] 10-11登录中间件 │ ├── [ 70M] 10-12开发路由 │ ├── [ 15M] 10-13介绍morgan │ ├── [ 86M] 10-14使用morgan写日志 │ ├── [ 64M] 10-15中间件原理介绍 │ ├── [163M] 10-16中间件原理-代码实现 │ ├── [ 17M] 10-17-总结 │ ├── [ 46M] 10-1开始 │ ├── [ 80M] 10-2express安装 │ ├── [110M] 10-3介绍express的入口代码 │ ├── [ 63M] 10-4演示express如何处理路由 │ ├── [141M] 10-5express中间件 │ ├── [ 19M] 10-6express介绍的总结 │ ├── [ 91M] 10-7express开发博客项目-初始化环境 │ ├── [ 54M] 10-8express处理session │ └── [ 72M] 10-9session连接redis ├── 第11章使用Koa2重构博客项目/ │ ├── [ 64M] 11-10中间件原理-分析 │ ├── [ 80M] 11-11中间件原理-代码演示 │ ├── [ 17M] 11-12总结 │ ├── [107M] 11-1开始 │ ├── [ 90M] 11-2介绍koa2 │ ├── [ 59M] 11-3介绍路由 │ ├── [ 29M] 11-4介绍中间件机制 │ ├── [ 77M] 11-5实现session │ ├── [ 67M] 11-6开发路由-准备工作 │ ├── [ 63M] 11-7开发路由-代码演示 │ ├── [8.7M] 11-8开发路由-(联调) │ └── [ 58M] 11-9日志 ├── 第12章数据库使用sequelize重构博客项目(2022升级)/ │ ├── [ 55M] 12-10-使用sequelize重构博客项目-新增、删除、修改 │ ├── [ 30M] 12-11-使用sequelize重构博客项目-联调和测试 │ ├── [ 12M] 12-12-章总结 │ ├── [ 21M] 12-1-章介绍 │ ├── [ 53M] 12-2-介绍ORM和sequelize,以及两者的关系 │ ├── [ 73M] 12-3-sequelize连接mysql数据库,生产环境使用连 │ ├── [ 72M] 12-4-sequelize创建数据模型,同步到数据库 │ ├── [ 53M] 12-5-使用sequelize新增数据 │ ├── [ 63M] 12-6-使用sequelize查询数据 │ ├── [ 35M] 12-7-使用sequelize修改和删除数据 │ ├── [ 69M] 12-8-使用sequelize重构博客项目-配置项目环境 │ └── [ 46M] 12-9-使用sequelize重构博客项目-登录和查询博客列表 ├── 第13章数据库使用mongodb重构博客项目/ │ ├── [ 82M] 13-10用compass操作mongodb │ ├── [ 65M] 13-11用命令行操作mongodb │ ├── [ 39M] 13-12mongodb的几个重要概念 │ ├── [ 65M] 13-13nodejs连接mongodb │ ├── [ 83M] 13-14nodejs操作mongodb-part1 │ ├── [ 91M] 13-15使用mongoose连接mongodb服务 │ ├── [ 54M] 13-16mongoose的Schema和Model │ ├── [ 89M] 13-17mongoose操作mongodb │ ├── [ 59M] 13-18博客项目web-server链接mongodb服务端 │ ├── [ 89M] 13-19博客项目web-server使用mognodb数据库 │ ├── [ 25M] 13-1本章主要内容 │ ├── [ 65M] 13-20博客项目web-server使用mongodb-联调和 │ ├── [ 20M] 13-21本章总结~ │ ├── [114M] 13-2mongodb是文档数据库 │ ├── [8.7M] 13-3安装mongodb-介绍 │ ├── [ 40M] 13-4安装mongodb-mac-安装homebrew │ ├── [ 28M] 13-5安装mongodb-mac-安装mongodb │ ├── [ 30M] 13-6安装mongodb-mac-安装compass │ ├── [ 26M] 13-7安装mongodb-windows(1) │ ├── [ 53M] 13-8安装mongodb-windows(2) │ └── [ 43M] 13-9安装mongodb-windows(3) ├── 第14章线上环境和PM2配置/ │ ├── [ 87M] 14-1开始和PM2介绍 │ ├── [ 57M] 14-2常用命令 │ ├── [ 36M] 14-3进程守护 │ ├── [ 56M] 14-4常用配置 │ ├── [ 47M] 14-5多进程 │ └── [ 19M] 14-6总结 ├── 第15章发布到云服务器(2022升级)/ │ ├── [ 46M] 15-10开启防火墙,让外网可以访问 │ ├── [ 80M] 15-11-手动发布代码到云服务器 │ ├── [ 86M] 15-12-认识Githubactions-自动发布的利器 │ ├── [ 77M] 15-13-Githubactions在虚拟机上建立信任关系 │ ├── [ 63M] 15-14-使用Githubactions自动发布代码到云服务器 │ ├── [ 23M] 15-15-线上数据库需要单独购买 │ ├── [ 23M] 15-16域名和HTTPS证书需要单独购买 │ ├── [ 14M] 15-17-章总结 │ ├── [ 24M] 15-1-章介绍 │ ├── [ 61M] 15-2-购买云服务器-如何省钱购买 │ ├── [ 65K] 15-3Linux命令.pdf
 │ ├── [ 55M] 15-4-Linux基础命令-登录和建立信任-part1 │ ├── [ 59M] 15-5-Linux基础命令-远程拷贝和远程执行命令 │ ├── [ 61K] 15-6CentOS安装软件.pdf
 │ ├── [ 43M] 15-7-在云服务安装必备软件-git、nginx、nodejs │ ├── [ 81M] 15-8在云服务器启动HTML服务和nodejs服务 │ └── [ 56K] 15-9开启防火墙.pdf
 ├── 第16章nodejs面试真题讲解/ │ ├── [ 32M] 16-10请描述koa2洋葱圈模型 │ ├── [ 27M] 16-11nodejs如何读取大文件-? │ ├── [ 16M] 16-12nodejs线上环境为何开启多进程? │ ├── [ 69M] 16-1nodejs面试考点梳理-part1 │ ├── [ 27M] 16-2nodejs是什么?和前端js有何区别? │ ├── [ 19M] 16-3【必考题】nodejs如何调试 │ ├── [ 38M] 16-4commonjs和ES6-Module的区别 │ ├── [ 48M] 16-5回顾浏览器eventloop过程 │ ├── [ 82M] 16-6【必考题】eventloop在浏览器和nodejs的区别 │ ├── [ 84M] 16-7异步代码场景题-考察你对nodejs异步编程的理解 │ ├── [ 30M] 16-8session如何实现登录? │ └── [ 48M] 16-9请描述koa2和express的中间件机制 ├── 第17章课程总结/ │ ├── [ 21M] 17-1课程总结 │ └── [ 67M] 17-2如何进阶nodejs └── 资料代码/