-
内容大纲
本书旨在帮助读者快速掌握NestJS(简称Nest)开发,并应用于实战项目。本书首先介绍基本概念,为读者打下坚实的知识基础。接着,通过简洁的代码示例进行知识点的串联讲解,帮助读者快速克服学习瓶颈。最终,通过实践能力和工程思维的培养,帮助读者将知识从线性结构转变为网状结构,形成以Nest为基础的全栈知识体系。
本书采用通俗易懂的点线面知识构建方式进行讲解,适合从事前端开发和Node.js开发的工程师学习,同时也适合有意向学习Nest全栈知识的开发者。 -
作者介绍
-
目录
第1部分 基础篇
第1章 需要提前掌握的知识
1.1 Node中的请求与响应对象
1.1.1 原生Node处理HTTP请求
1.1.2 Express处理HTTP请求
1.1.3 Nest处理HTTP请求
1.2 TypeScript基础与应用
1.2.1 TypeScript编译
1.2.2 TypeScript类型系统
第2章 Nest初识
2.1 什么是Nest
2.1.1 Nest概述
2.1.2 Nest的主要特点
2.1.3 Nest的应用场景
2.2 快速上手Nest CLI
2.2.1 Nest CLI的安装
2.2.2 创建项目
2.2.3 生成指定的代码片段
2.2.4 构建应用
2.2.5 启动开发调试
2.2.6 查看项目信息
2.3 创建第一个Nest应用
2.3.1 生成后端项目
2.3.2 生成前端项目
2.3.3 准备工作
2.3.4 运行结果
2.3.5 模块化开发
2.4 Nest的AOP架构理念
2.4.1 MVC架构概述
2.4.2 AOP解决的问题
2.4.3 AOP在Nest中的应用
2.5 IoC思想解决了什么问题
2.5.1 IoC核心思想概述
2.5.2 IoC在Nest中的应用
2.6 学会调试Nest应用
2.6.1 Chrome DevTools调试
2.6.2 VS Code调试
2.6.3 扩展调试技巧
第3章 Nest核心概念介绍
3.1 贯穿全书的装饰器
3.1.1 基本概念
3.1.2 装饰器的种类
3.1.3 Nest中的装饰器
3.2 井然有序的模块化
3.2.1 基本概念
3.2.2 创建模块
3.2.3 共享模块
3.2.4 全局模块
3.2.5 动态模块
3.3 控制器与服务的默契配合
3.3.1 基本概念
3.3.2 Controller管理请求路由
3.3.3 Controller处理请求参数与请求体
3.3.4 Service处理数据层
3.3.5 服务与服务提供者
3.4 耳熟能详的中间件
3.4.1 类中间件
3.4.2 函数式中间件
3.4.3 局部中间件
3.4.4 全局中间件
3.5 拦截器与RxJS知多少
3.5.1 基本概念
3.5.2 创建项目
3.5.3 拦截器的基本使用方法
3.6 数据之源守护者:管道
3.6.1 基本概念
3.6.2 内置管道
3.6.3 自定义管道
3.7 Nest实现文件上传
3.7.1 初识Multer
3.7.2 单文件上传
3.7.3 多文件上传
3.7.4 上传任意文件
3.7.5 文件验证
第2部分 进阶篇
第4章 Nest与数据库
4.1 快速上手MySQL
4.1.1 安装和运行
4.1.2 MySQL的常用命令
4.1.3 可视化操作MySQL
4.2 MySQL表之间的关系
4.2.1 一对一关系
4.2.2 一对多/多对一关系
4.2.3 多对多关系
4.3 快速上手TypeORM
4.3.1 基本概念
4.3.2 项目准备
4.3.3 创建模型及实体
4.3.4 定义数据列及类型
4.3.5 连接数据库
4.3.6 使用Repository操作CRUD
4.3.7 使用QueryBuilder操作CRUD
4.4 使用TypeORM处理多表关系
4.4.1 一对一关系
4.4.2 一对多/多对一关系
4.4.3 多对多关系
4.5 在Nest中使用TypeORM操作MySQL
4.5.1 项目准备
4.5.2 使用EntityManager操作实体
4.5.3 使用Repository操作实体
4.5.4 使用QueryBuilder操作实体
第5章 性能优化之数据缓存
5.1 快速上手Redis
5.1.1 安装和运行
5.1.2 Redis的常用命令
5.2 在Nest中使用Redis缓存
5.2.1 项目准备
5.2.2 Redis初始化
5.2.3 建表并构建缓存
5.2.4 运行代码
5.2.5 设置缓存有效期
5.2.6 选择合理的有效期
第6章 身份验证与授权
6.1 Cookie、Session、Token、JWT、SSO详解
6.1.1 什么是身份验证
6.1.2 什么是授权
6.1.3 什么是凭证
6.1.4 什么是Cookie
6.1.5 什么是Session
6.1.6 Session与Cookie的区别
6.1.7 什么是Token
6.1.8 什么是JWT
6.1.9 JWT与Token的区别
6.1.10 什么是SSO
6.2 基于Passport和JWT实现身份验证
6.2.1 基本概念
6.2.2 项目准备
6.2.3 用本地策略实现用户登录
6.2.4 用JWT策略实现接口校验
6.2.5 代码优化
6.3 基于RBAC实现权限控制
6.3.1 基本概念
6.3.2 数据表设计
6.3.3 项目准备
6.3.4 创建实体
6.3.5 启动服务
6.3.6 实现角色守卫控制
6.3.7 生成测试数据
6.3.8 测试效果
第7章 系统部署与扩展
7.1 快速上手Docker
7.1.1 初识Docker
7.1.2 安装Docker
7.1.3 Docker的使用
7.2 快速上手Dockerfile
7.2.1 Docker的基本概念
7.2.2 Dockerfile的基本语法
7.2.3 Dockerfile实践
第3部分 扩展篇
第8章 单元测试与端到端测试
8.1 重新认识单元测试
8.1.1 什么是单元测试
8.1.2 为什么大部分公司没有进行单元测试
8.1.3 为什么要编写单元测试
8.1.4 先编写单元测试还是先编写代码
8.1.5 测试驱动开发
8.2 在Nest中使用Jest编写单元测试
8.2.1 初识Jest
8.2.2 项目准备
8.2.3 编写测试用例
8.2.4 实现业务代码
8.2.5 重构代码
8.3 集成测试
8.3.1 编写测试用例
8.3.2 测试效果
8.4 端到端测试
8.4.1 编写测试用例
8.4.2 实现业务代码
第9章 日志与错误处理
9.1 如何在Nest中记录日志
9.1.1 为什么要记录日志
9.1.2 内置日志器Logger
9.1.3 定制日志器
9.1.4 记录日志的正确姿势
9.1.5 第三方日志器Winston
9.2 Winston日志管理实践
9.2.1 Winston的基础使用
9.2.2 本地持久化日志
9.3 面向切面日志统计实践
9.3.1 中间件日志统计
9.3.2 拦截器日志统计
9.3.3 过滤器日志统计
第4部分 Nest项目实战篇
第10章 数字门店管理平台开发
10.1 产品需求分析与设计
10.1.1 产品需求说明
10.1.2 功能原型图
10.2 技术选型与项目准备
10.2.1 前端技术选型
10.2.2 初始化前端项目
10.2.3 前端架构设计
10.2.4 后端技术选型
10.2.5 初始化后端项目
10.2.6 后端架构设计
10.3 API接口及数据库表设计
10.3.1 API接口功能划分
10.3.2 数据库设计
10.4 实现注册登录
10.4.1 页面效果展示
10.4.2 接口实现
10.5 实现用户与角色模块
10.5.1 页面效果展示
10.5.2 表关系设计
10.5.3 接口实现
10.6 实现商品与订单模块
10.6.1 页面效果展示
10.6.2 表关系设计
10.6.3 接口实现
10.7 基于Redis实现商品热销榜
10.7.1 页面效果展示
10.7.2 接口实现
10.8 实现活动模块与定时任务
10.8.1 页面效果展示
10.8.2 表关系设计
10.8.3 接口实现
10.9 使用Docker Compose部署项目
10.9.1 编写后端Docker Compose文件
10.9.2 编写Dockerfile文件
完结语:是终点,更是新的起点
一个小小的决定
时间的杠杆
结语
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-
孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-
时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-
本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...