课程介绍

Node.js已经成为前端工程师必备的技能。无论是面试还是实际工作中,对Node.js的了解已经变得非常重要。本课程以一个博客项目为例,首先介绍了服务端的基本概念,然后通过使用Node.js原生代码开发项目,逐步引入Express、Koa2和Nest.js等框架进行重构。课程涵盖了MySQL、MongoDB和Redis等常见数据库的使用,最终教授如何将代码部署到云服务器上。通过本课程,您将逐步深入了解Node.js的各项技能,为成为全栈工程师迈出坚实的步伐!

课程目录

第1章 课程介绍
包括课程概述、核心模块、核心技术、课程安排、课程收获、讲授方式、学习前提等方面的介绍,让同学们对课程项目有一个直观的了解。
1-1 课程导学
1-2 课程适用于最新版node.js

第2章 初始服务端(2022升级)
向初学者介绍什么是服务端,什么是路由,HTTP 协议在其中的作用,数据如何在前端和服务端流转。如何更高效的学习 nodejs 。
2-1 你真的了解服务端吗?
2-2 什么是服务端-职责和流程
2-3 前端和服务端的交互-HTTP协议
2-4 前端和服务端的交互-通过博客系统做演示
2-5 一个网页可能对应多个服务端
2-6 路由-服务端的入口规则
2-7 路由的实现离不开Request
2-8 数据库-存储和查询数据
2-9 为什么选择nodejs开发服务端
2-10 高效学习nodejs的“三步曲”
2-11 要主动排查错误,不做伸手党
2-12 章总结

第3章 nodejs 介绍
本章主要为了照顾尚未入门或者刚刚入门 nodejs 的同学,介绍 nodejs 的下载、安装和基本使用,以及 nodejs 和前端 javascript 的区别。另外,重点介绍了服务端开发和前端开发思路上的区别,为后续的开发做一个基础的铺垫。
3-1 下载和安装 node.js
3-2 nodejs和js的区别
3-3 commonjs-演示
3-4 debugger
3-5 debuger之inspect协议
3-6 server端和前端的区别
3-7 总结

第4章 项目介绍
课程是通过案例的形式来学习 nodejs ,本章先来介绍这个案例,即个人博客项目。包括需求分析、原型图设计、以及 server 端的技术方案设计。有了详细的设计方案,才能指导后续的实际开发。
4-1 项目需求分析
4-2 技术方案

第5章 开发博客项目之接口
要开发一个博客项目的 server 端,首先要实现技术方案设计中的各个 API 。本章主要讲解如何使用原生 nodejs 处理的 http 请求,包括路由分析和数据返回,然后代码演示各个 API 的开发 。但是本章尚未连接数据库,因此 API 返回的都是假数据。
5-1 http-概述
5-2 处理get请求
5-3 处理post请求
5-4 处理http请求的综合示例
5-5 搭建开发环境
5-6 初始化路由
5-7 开发路由(博客列表路由)(上)
5-8 开发路由(博客详情路由)(下)
5-9 开发路由(处理 POSTData)
5-10 开发路由(新建和更新博客路由)
5-11 开发路由(删除博客路由和登录路由)
5-12 补充:路由和API

第6章 开发博客项目之数据存储
API 实现了,就需要连接数据库,实现真正的数据存储和查询,不再使用假数据。本章主要讲解 mysql 的安装、使用,以及用 nodejs 连接 mysql ,最后将 mysql 应用到各个已经开发完的 API 中。
6-1 MySql 介绍
6-2 数据库操作(创建和增、删、查)
6-3 数据库操作(更新)
6-4 nodejs操作 mysql
6-5 nodejs 链接 mysql 做成工具
6-6 API对接mysql(博客列表)
6-7 API对接mysql(博客详情和新建)
6-8 API对接mysql(博客更新和删除)
6-9 API对接mysql(登录)
6-10 总结

第7章 博客项目之登录
用户登录是博客项目的主要功能之一,本章主要讲解如何使用原生 nodejs 实现登录。包括 cookie session 的介绍和使用,以及为了扩展性和性能使用 redis 来存储 session 。最后,通过 nginx 配置联调环境,和前端页面联调。本章内容较多,对于前端开发人员来说,新概念也较多,是本课程学习上的挑战。
7-1 开始
7-2 cookie-介绍
7-3 cookie用于登录验证
7-4 cookie做限制(1)
7-5 cookie做限制(2)
7-6 session介绍
7-7 session演示
7-8 从 session 到 redis
7-9 redis介绍
7-10 nodejs链接redis的demo
7-11 升级 npm-redis-v4【代码redis-test】(2022新)
7-12 nodejs连接redis-封装工具函数
7-13 升级 npm-redis-v4【代码blog-1】(2022新)
7-14 session存入redis
7-15 完成server端登录的代码
7-16 联调-介绍html页面
7-17 nginx配置
7-18 联调演示与总结
7-19 通过 CORS 实现跨域(2022新)

第8章 博客项目之日志
日志记录和日志分析是 server 端的重要模块,前端涉及较少。本章主要讲解如何使用原生 nodejs 实现日志记录、日志内容分析和日志文件拆分。其中包括 stream readline 和 crontab 等核心知识点。
8-1 开始
8-2 nodejs文件操作
8-3 stream 介绍
8-4 stream演示(1)
8-5 stream演示(2)
8-6 写日志
8-7 拆分日志
8-8 分析日志介绍
8-9 readline演示
8-10 总结

第9章 博客项目之安全
安全是 server 端需要考虑的重点内容,本章主要讲解 nodejs 如何防范 sql 注入,xss 攻击,以及数据库的密码加密 —— 以防被黑客获取明文密码。
9-1 开始和sql注入
9-2 xss攻击
9-3 密码加密和总结
9-4 统一总结

第10章 使用 express 重构博客项目
先前的课程内容都是通过原生 nodejs 实现,是为了让同学们了解原理和底层实现,但实际开发还是会使用框架和工具来提高效率。本章使用 express 重构这个博客项目,学习使用框架和中间件机制。另外,本章将使用常用的插件来实现登录、日志等比较繁琐的功能,提高开发效率。最后,还详细讲解了 express 中间件的实现原理。
10-1 开始
10-2 express 安装
10-3 介绍express的入口代码
10-4 演示express如何处理路由
10-5 express中间件
10-6 express介绍的总结
10-7 express开发博客项目-初始化环境
10-8 express处理session
10-9 session连接redis
10-10 升级npm-redis-v4【代码blog-express】(2022新)
10-11 登录中间件
10-12 开发路由
10-13 介绍morgan
10-14 使用morgan写日志
10-15 中间件原理介绍
10-16 中间件原理-代码实现
10-17 总结

第11章 使用 Koa2 重构博客项目
目前 koa2 和 express 是企业同时使用的 nodejs 框架,因此本章使用 koa2 再次重构这个博客项目。重构过程中将详细学习 koa2 框架的使用,koa2 的中间件机制,以及 async/await 语法。同理,本行也使用常用框架来实现登录、日志等比较繁琐的功能,提高开发效率。最后,还详细讲解了 koa2 中间件的实现原理。
11-1 开始
11-2 介绍koa2
11-3 介绍路由
11-4 介绍中间件机制
11-5 实现session
11-6 开发路由-准备工作
11-7 开发路由-代码演示
11-8 开发路由-(联调)
11-9 日志
11-10 中间件原理-分析
11-11 中间件原理-代码演示
11-12 总结

第12章 数据库使用 sequelize 重构博客项目(2022升级)
之前操作 mysql 数据库都是手写 SQL 语句,比较麻烦,而且很容易写错。本章介绍一种业界常用的全新方式:ORM 操作数据。sequelize 就是一款非常优秀的 ORM 工具。
12-1 章介绍
12-2 介绍ORM和sequelize,以及两者的关系
12-3 sequelize连接mysql数据库,生产环境使用连接池
12-4 sequelize创建数据模型,同步到数据库
12-5 使用sequelize新增数据
12-6 使用sequelize查询数据
12-7 使用sequelize修改和删除数据
12-8 使用sequelize重构博客项目-配置项目环境
12-9 使用sequelize重构博客项目-登录和查询博客列表
12-10 使用sequelize重构博客项目-新增、删除、修改博客
12-11 使用sequelize重构博客项目-联调和测试
12-12 章总结

第13章 数据库使用 mongodb 重构博客项目
数据库使用 mongodb 重构博客项目
13-1 本章主要内容
13-2 mongodb是文档数据库
13-3 安装mongodb-介绍
13-4 安装mongodb-mac-安装homebrew
13-5 安装mongodb-mac-安装mongodb
13-6 安装mongodb-mac-安装compass
13-7 安装mongodb-windows(1)
13-8 安装mongodb-windows(2)
13-9 安装mongodb-windows(3)
13-10 用compass操作mongodb
13-11 用命令行操作mongodb
13-12 mongodb的几个重要概念
13-13 nodejs连接mongodb
13-14 nodejs操作mongodb-part1
13-15 使用mongoose连接mongodb服务
13-16 mongoose的Schema和Model
13-17 mongoose操作mongodb
13-18 博客项目web-server链接mongodb服务端
13-19 博客项目web-server使用mognodb数据库
13-20 博客项目web-server使用mongodb-联调和测试
13-21 本章总结~

第14章 线上环境和 PM2 配置
代码开发完毕要线上运行,并且保证服务稳定性,将使用 PM2 工具。本章讲解 PM2 的配置使用和进程守护,以及 PM2 多进程模型。最后,还介绍了服务器运维的相关方法。
14-1 开始和 PM2 介绍
14-2 常用命令
14-3 进程守护
14-4 常用配置
14-5 多进程
14-6 总结

第15章 发布到云服务器(2022升级)
现在项目都是在本地运行的,本章讲解如何把代码发布到云服务器,通过公网 IP 访问你自己的 Web Server。
15-1 章介绍
15-2 购买云服务器-如何省钱购买
15-3 Linux 命令
15-4 Linux基础命令-登录和建立信任-part1
15-5 Linux基础命令-远程拷贝和远程执行命令
15-6 CentOS 安装软件
15-7 在云服务安装必备软件-git、nginx、nodejs、wget
15-8 在云服务器启动 HTML 服务和 nodejs 服务
15-9 开启防火墙
15-10 开启防火墙,让外网可以访问
15-11 手动发布代码到云服务器
15-12 认识Github actions – 自动发布的利器
15-13 Github actions 在虚拟机上建立信任关系
15-14 使用Github actions 自动发布代码到云服务器
15-15 线上数据库需要单独购买
15-16 域名和 HTTPS 证书需要单独购买
15-17 章总结

第16章 nodejs 面试真题讲解
nodejs 面试真题讲解
16-1 nodejs面试考点梳理-part1
16-2 nodejs是什么?和前端js有何区别?
16-3 【必考题】nodejs如何调试
16-4 commonjs和ES6-Module的区别
16-5 回顾浏览器event loop过程
16-6 【必考题】event loop在浏览器和nodejs的区别
16-7 异步代码场景题-考察你对nodejs异步编程的理解
16-8 session如何实现登录?
16-9 请描述koa2和express的中间件机制
16-10 请描述 koa2 洋葱圈模型
16-11 nodejs如何读取大文件?
16-12 nodejs线上环境为何开启多进程?

第17章 课程总结
对课程做总结,并列出了课程所提到的主要知识点,整体回顾课程。
17-1 课程总结
17-2 如何进阶nodejs

第18章 使用Nest.js重构博客服务端(2024 更新)
2024 更新内容:使用 Nest.js 重构博客服务端~~
18-1 开始
18-2 创建 nest.js 项目并运行起来
18-3 创建 blog 模块,创建第一个路由
18-4 解锁 nestjs 路由相关功能:query和param
18-5 解锁 nestjs 路由相关功能:获取 request-body
18-6 使用拦截器和过滤器,统一 nestjs 路由的返回格式
18-7 使用 typeORM 连接 MySQL 数据库
18-8 使用 TypeORM 定义 blog 数据模型
18-9 开发 blog 模块的所有功能
18-10 开发 user 模块基础功能
18-11 使用 JWT 做登录校验,登录成功返回 Token
18-12 使用 AuthGuard 校验 token 并获取用户信息
18-13 总结