新书速览|NestJS全栈开发解析:快速上手与实践

《NestJS全栈开发解析:快速上手与实践》

本书内容

《NestJS全栈开发解析:快速上手与实践》旨在帮助读者快速掌握NestJS(简称Nest)开发,并应用于实战项目。本书共10章,首先介绍基本概念,为读者打下坚实的知识基础。接着,通过简洁的代码示例进行知识点的串联讲解,帮助读者快速克服学习瓶颈。最终,通过实践能力和工程思维的培养,帮助读者将知识从线性结构转变为网状结构,形成以Nest为基础的全栈知识体系。

本书作者

温健民,毕业于广东海洋大学计算机系,拥有5年前端开发经验,先后在某互联网公司担任前端工程师和前端技术leader职位。在Vue、React以及前端工程化方面有着深入的研究。同时是掘金技术博主,Nest技术爱好者,也是hello-algo算法开源项目的贡献者。

本书读者

《NestJS全栈开发解析:快速上手与实践》采用通俗易懂的点线面知识构建方式进行讲解,适合从事前端开发和Node.js开发的工程师学习,同时也适合有意向学习Nest全栈知识的开发者

本书目录

第1部分  基础篇

第1章  需要提前掌握的知识 2

1.1  Node中的请求与响应对象 2

1.1.1  原生Node处理HTTP请求 2

1.1.2  Express处理HTTP请求 4

1.1.3  Nest处理HTTP请求 7

1.2  TypeScript基础与应用 7

1.2.1  TypeScript编译 8

1.2.2  TypeScript类型系统 9

第2章  Nest初识 15

2.1  什么是Nest 15

2.1.1  Nest概述 15

2.1.2  Nest的主要特点 15

2.1.3  Nest的应用场景 16

2.2  快速上手Nest CLI 16

2.2.1  Nest CLI的安装 16

2.2.2  创建项目 17

2.2.3  生成指定的代码片段 19

2.2.4  构建应用 22

2.2.5  启动开发调试 24

2.2.6  查看项目信息 25

2.3  创建第一个Nest应用 25

2.3.1  生成后端项目 26

2.3.2  生成前端项目 26

2.3.3  准备工作 27

2.3.4  运行结果 29

2.3.5  模块化开发 30

2.4  Nest的AOP架构理念 32

2.4.1  MVC架构概述 32

2.4.2  AOP解决的问题 33

2.4.3  AOP在Nest中的应用 33

2.5  IoC思想解决了什么问题 40

2.5.1  IoC核心思想概述 40

2.5.2  IoC在Nest中的应用 41

2.6  学会调试Nest应用 44

2.6.1  Chrome DevTools调试 44

2.6.2  VS Code调试 46

2.6.3  扩展调试技巧 48

第3章  Nest核心概念介绍 51

3.1  贯穿全书的装饰器 51

3.1.1  基本概念 51

3.1.2  装饰器的种类 51

3.1.3  Nest中的装饰器 59

3.2  井然有序的模块化 60

3.2.1  基本概念 60

3.2.2  创建模块 61

3.2.3  共享模块 62

3.2.4  全局模块 64

3.2.5  动态模块 65

3.3  控制器与服务的默契配合 66

3.3.1  基本概念 66

3.3.2  Controller管理请求路由 67

3.3.3  Controller处理请求参数与请求体 68

3.3.4  Service处理数据层 70

3.3.5  服务与服务提供者 71

3.4  耳熟能详的中间件 71

3.4.1  类中间件 71

3.4.2  函数式中间件 74

3.4.3  局部中间件 74

3.4.4  全局中间件 74

3.5  拦截器与RxJS知多少 75

3.5.1  基本概念 75

3.5.2  创建项目 76

3.5.3  拦截器的基本使用方法 76

3.6  数据之源守护者:管道 79

3.6.1  基本概念 79

3.6.2  内置管道 80

3.6.3  自定义管道 88

3.7  Nest实现文件上传 89

3.7.1  初识Multer 89

3.7.2  单文件上传 91

3.7.3  多文件上传 94

3.7.4  上传任意文件 98

3.7.5  文件验证 99

第2部分  进阶篇

第4章  Nest与数据库 102

4.1  快速上手MySQL 102

4.1.1  安装和运行 102

4.1.2  MySQL的常用命令 105

4.1.3  可视化操作MySQL 107

4.2  MySQL表之间的关系 112

4.2.1  一对一关系 112

4.2.2  一对多/多对一关系 119

4.2.3  多对多关系 121

4.3  快速上手TypeORM 126

4.3.1  基本概念 126

4.3.2  项目准备 126

4.3.3  创建模型及实体 126

4.3.4  定义数据列及类型 127

4.3.5  连接数据库 128

4.3.6  使用Repository操作CRUD 129

4.3.7  使用QueryBuilder操作CRUD 131

4.4  使用TypeORM处理多表关系 134

4.4.1  一对一关系 134

4.4.2  一对多/多对一关系 140

4.4.3  多对多关系 142

4.5  在Nest中使用TypeORM操作MySQL 144

4.5.1  项目准备 144

4.5.2  使用EntityManager操作实体 147

4.5.3  使用Repository操作实体 148

4.5.4  使用QueryBuilder操作实体 151

第5章  性能优化之数据缓存 154

5.1  快速上手Redis 154

5.1.1  安装和运行 154

5.1.2  Redis的常用命令 155

5.2  在Nest中使用Redis缓存 162

5.2.1  项目准备 162

5.2.2  Redis初始化 164

5.2.3  建表并构建缓存 165

5.2.4  运行代码 167

5.2.5  设置缓存有效期 169

5.2.6  选择合理的有效期 170

第6章  身份验证与授权 171

6.1  Cookie、Session、Token、JWT、SSO详解 171

6.1.1  什么是身份验证 171

6.1.2  什么是授权 172

6.1.3  什么是凭证 172

6.1.4  什么是Cookie 172

6.1.5  什么是Session 173

6.1.6  Session与Cookie的区别 173

6.1.7  什么是Token 174

6.1.8  什么是JWT 176

6.1.9  JWT与Token的区别 177

6.1.10  什么是SSO 177

6.2  基于Passport和JWT实现身份验证 180

6.2.1  基本概念 181

6.2.2  项目准备 181

6.2.3  用本地策略实现用户登录 182

6.2.4  用JWT策略实现接口校验 184

6.2.5  代码优化 188

6.3  基于RBAC实现权限控制 191

6.3.1  基本概念 191

6.3.2  数据表设计 192

6.3.3  项目准备 193

6.3.4  创建实体 194

6.3.5  启动服务 196

6.3.6  实现角色守卫控制 196

6.3.7  生成测试数据 200

6.3.8  测试效果 202

第7章  系统部署与扩展 203

7.1  快速上手Docker 203

7.1.1  初识Docker 203

7.1.2  安装Docker 204

7.1.3  Docker的使用 205

7.2  快速上手Dockerfile 209

7.2.1  Docker的基本概念 209

7.2.2  Dockerfile的基本语法 210

7.2.3  Dockerfile实践 210

第3部分  扩展篇

第8章  单元测试与端到端测试 216

8.1  重新认识单元测试 216

8.1.1  什么是单元测试 216

8.1.2  为什么大部分公司没有进行单元测试 217

8.1.3  为什么要编写单元测试 217

8.1.4  先编写单元测试还是先编写代码 218

8.1.5  测试驱动开发 219

8.2  在Nest中使用Jest编写单元测试 220

8.2.1  初识Jest 220

8.2.2  项目准备 223

8.2.3  编写测试用例 224

8.2.4  实现业务代码 225

8.2.5  重构代码 229

8.3  集成测试 230

8.3.1  编写测试用例 230

8.3.2  测试效果 232

8.4  端到端测试 232

8.4.1  编写测试用例 233

8.4.2  实现业务代码 235

第9章  日志与错误处理 237

9.1  如何在Nest中记录日志 237

9.1.1  为什么要记录日志 238

9.1.2  内置日志器Logger 238

9.1.3  定制日志器 240

9.1.4  记录日志的正确姿势 241

9.1.5  第三方日志器Winston 241

9.2  Winston日志管理实践 241

9.2.1  Winston的基础使用 242

9.2.2  本地持久化日志 244

9.3  面向切面日志统计实践 248

9.3.1  中间件日志统计 248

9.3.2  拦截器日志统计 249

9.3.3  过滤器日志统计 251

第4部分  Nest项目实战篇

第10章  数字门店管理平台开发 254

10.1  产品需求分析与设计 254

10.1.1  产品需求说明 254

10.1.2  功能原型图 255

10.2  技术选型与项目准备 262

10.2.1  前端技术选型 262

10.2.2  初始化前端项目 262

10.2.3  前端架构设计 263

10.2.4  后端技术选型 264

10.2.5  初始化后端项目 265

10.2.6  后端架构设计 266

10.3  API接口及数据库表设计 268

10.3.1  API接口功能划分 268

10.3.2  数据库设计 269

10.4  实现注册登录 273

10.4.1  页面效果展示 273

10.4.2  接口实现 281

10.5  实现用户与角色模块 290

10.5.1  页面效果展示 290

10.5.2  表关系设计 295

10.5.3  接口实现 299

10.6  实现商品与订单模块 303

10.6.1  页面效果展示 304

10.6.2  表关系设计 306

10.6.3  接口实现 307

10.7  基于Redis实现商品热销榜 315

10.7.1  页面效果展示 316

10.7.2  接口实现 317

10.8  实现活动模块与定时任务 320

10.8.1  页面效果展示 320

10.8.2  表关系设计 322

10.8.3  接口实现 323

10.9  使用Docker Compose部署项目 325

10.9.1  编写后端Docker Compose文件 325

10.9.2  编写Dockerfile文件 330

完结语:是终点,更是新的起点 334

一个小小的决定 334

时间的杠杆 334

结语 334

编辑推荐

《NestJS全栈开发解析:快速上手与实践》是一本深入浅出的指南,旨在帮助读者系统地学习NestJS框架的基础知识和高级应用,以及如何将其应用到实际项目中。《NestJS全栈开发解析:快速上手与实践》内容丰富、实用性强,涵盖了NestJS的核心概念、数据库编程、身份验证与授权、Redis缓存、Docker部署等关键内容,同时通过实战案例帮助读者将所学知识转化为实际项目应用。适合Node.js开发从业者和渴望学习全栈知识的前端开发人员阅读,也可作为培训机构及大中专教学用书。如果您希望深入了解NestJS,并将其运用于实际项目中,那么这本书将是您的不二选择。

本文摘自《NestJS全栈开发解析:快速上手与实践》,获出版社和作者授权发布。

NestJS全栈开发解析(快速上手与实践)——jd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值