注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)操作系統(tǒng)NestJS全棧開(kāi)發(fā)解析

NestJS全棧開(kāi)發(fā)解析

NestJS全棧開(kāi)發(fā)解析

定 價(jià):¥99.00

作 者: 溫健民
出版社: 清華大學(xué)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買這本書可以去


ISBN: 9787302671008 出版時(shí)間: 2024-09-01 包裝: 平裝-膠訂
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  《NestJS全棧開(kāi)發(fā)解析:快速上手與實(shí)踐》旨在幫助讀者快速掌握NestJS(簡(jiǎn)稱Nest)開(kāi)發(fā),并應(yīng)用于實(shí)戰(zhàn)項(xiàng)目。本書共10章,首先介紹基本概念,為讀者打下堅(jiān)實(shí)的知識(shí)基礎(chǔ)。接著,通過(guò)簡(jiǎn)潔的代碼示例進(jìn)行知識(shí)點(diǎn)的串聯(lián)講解,幫助讀者快速克服學(xué)習(xí)瓶頸。最終,通過(guò)實(shí)踐能力和工程思維的培養(yǎng),幫助讀者將知識(shí)從線性結(jié)構(gòu)轉(zhuǎn)變?yōu)榫W(wǎng)狀結(jié)構(gòu),形成以Nest為基礎(chǔ)的全棧知識(shí)體系?!禢estJS全棧開(kāi)發(fā)解析:快速上手與實(shí)踐》采用通俗易懂的點(diǎn)線面知識(shí)構(gòu)建方式進(jìn)行講解,適合從事前端開(kāi)發(fā)和Node.js開(kāi)發(fā)的工程師學(xué)習(xí),同時(shí)也適合有意向?qū)W習(xí)Nest全棧知識(shí)的開(kāi)發(fā)者。

作者簡(jiǎn)介

  溫健民,畢業(yè)于廣東海洋大學(xué)計(jì)算機(jī)系,擁有5年前端開(kāi)發(fā)經(jīng)驗(yàn),先后在某互聯(lián)網(wǎng)公司擔(dān)任前端工程師和前端技術(shù)leader職位。在Vue、React以及前端工程化方面有著深入的研究。同時(shí)是掘金技術(shù)博主,Nest技術(shù)愛(ài)好者,也是hello-algo算法開(kāi)源項(xiàng)目的貢獻(xiàn)者。

圖書目錄

第1部分  基礎(chǔ)篇
第1章  需要提前掌握的知識(shí) 2
1.1  Node中的請(qǐng)求與響應(yīng)對(duì)象 2
1.1.1  原生Node處理HTTP請(qǐng)求 2
1.1.2  Express處理HTTP請(qǐng)求 4
1.1.3  Nest處理HTTP請(qǐng)求 7
1.2  TypeScript基礎(chǔ)與應(yīng)用 7
1.2.1  TypeScript編譯 8
1.2.2  TypeScript類型系統(tǒng) 9
第2章  Nest初識(shí) 15
2.1  什么是Nest 15
2.1.1  Nest概述 15
2.1.2  Nest的主要特點(diǎn) 15
2.1.3  Nest的應(yīng)用場(chǎng)景 16
2.2  快速上手Nest CLI 16
2.2.1  Nest CLI的安裝 16
2.2.2  創(chuàng)建項(xiàng)目 17
2.2.3  生成指定的代碼片段 19
2.2.4  構(gòu)建應(yīng)用 22
2.2.5  啟動(dòng)開(kāi)發(fā)調(diào)試 24
2.2.6  查看項(xiàng)目信息 25
2.3  創(chuàng)建第一個(gè)Nest應(yīng)用 25
2.3.1  生成后端項(xiàng)目 26
2.3.2  生成前端項(xiàng)目 26
2.3.3  準(zhǔn)備工作 27
2.3.4  運(yùn)行結(jié)果 29
2.3.5  模塊化開(kāi)發(fā) 30
2.4  Nest的AOP架構(gòu)理念 32
2.4.1  MVC架構(gòu)概述 32
2.4.2  AOP解決的問(wèn)題 33
2.4.3  AOP在Nest中的應(yīng)用 33
2.5  IoC思想解決了什么問(wèn)題 40
2.5.1  IoC核心思想概述 40
2.5.2  IoC在Nest中的應(yīng)用 41
2.6  學(xué)會(huì)調(diào)試Nest應(yīng)用 44
2.6.1  Chrome DevTools調(diào)試 44
2.6.2  VS Code調(diào)試 46
2.6.3  擴(kuò)展調(diào)試技巧 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  創(chuàng)建模塊 61
3.2.3  共享模塊 62
3.2.4  全局模塊 64
3.2.5  動(dòng)態(tài)模塊 65
3.3  控制器與服務(wù)的默契配合 66
3.3.1  基本概念 66
3.3.2  Controller管理請(qǐng)求路由 67
3.3.3  Controller處理請(qǐng)求參數(shù)與請(qǐng)求體 68
3.3.4  Service處理數(shù)據(jù)層 70
3.3.5  服務(wù)與服務(wù)提供者 71
3.4  耳熟能詳?shù)闹虚g件 71
3.4.1  類中間件 71
3.4.2  函數(shù)式中間件 74
3.4.3  局部中間件 74
3.4.4  全局中間件 74
3.5  攔截器與RxJS知多少 75
3.5.1  基本概念 75
3.5.2  創(chuàng)建項(xiàng)目 76
3.5.3  攔截器的基本使用方法 76
3.6  數(shù)據(jù)之源守護(hù)者:管道 79
3.6.1  基本概念 79
3.6.2  內(nèi)置管道 80
3.6.3  自定義管道 88
3.7  Nest實(shí)現(xiàn)文件上傳 89
3.7.1  初識(shí)Multer 89
3.7.2  單文件上傳 91
3.7.3  多文件上傳 94
3.7.4  上傳任意文件 98
3.7.5  文件驗(yàn)證 99
第2部分  進(jìn)階篇
第4章  Nest與數(shù)據(jù)庫(kù) 102
4.1  快速上手MySQL 102
4.1.1  安裝和運(yùn)行 102
4.1.2  MySQL的常用命令 105
4.1.3  可視化操作MySQL 107
4.2  MySQL表之間的關(guān)系 112
4.2.1  一對(duì)一關(guān)系 112
4.2.2  一對(duì)多/多對(duì)一關(guān)系 119
4.2.3  多對(duì)多關(guān)系 121
4.3  快速上手TypeORM 126
4.3.1  基本概念 126
4.3.2  項(xiàng)目準(zhǔn)備 126
4.3.3  創(chuàng)建模型及實(shí)體 126
4.3.4  定義數(shù)據(jù)列及類型 127
4.3.5  連接數(shù)據(jù)庫(kù) 128
4.3.6  使用Repository操作CRUD 129
4.3.7  使用QueryBuilder操作CRUD 131
4.4  使用TypeORM處理多表關(guān)系 134
4.4.1  一對(duì)一關(guān)系 134
4.4.2  一對(duì)多/多對(duì)一關(guān)系 140
4.4.3  多對(duì)多關(guān)系 142
4.5  在Nest中使用TypeORM操作MySQL 144
4.5.1  項(xiàng)目準(zhǔn)備 144
4.5.2  使用EntityManager操作實(shí)體 147
4.5.3  使用Repository操作實(shí)體 148
4.5.4  使用QueryBuilder操作實(shí)體 151
第5章  性能優(yōu)化之?dāng)?shù)據(jù)緩存 154
5.1  快速上手Redis 154
5.1.1  安裝和運(yùn)行 154
5.1.2  Redis的常用命令 155
5.2  在Nest中使用Redis緩存 162
5.2.1  項(xiàng)目準(zhǔn)備 162
5.2.2  Redis初始化 164
5.2.3  建表并構(gòu)建緩存 165
5.2.4  運(yùn)行代碼 167
5.2.5  設(shè)置緩存有效期 169
5.2.6  選擇合理的有效期 170
第6章  身份驗(yàn)證與授權(quán) 171
6.1  Cookie、Session、Token、JWT、SSO詳解 171
6.1.1  什么是身份驗(yàn)證 171
6.1.2  什么是授權(quán) 172
6.1.3  什么是憑證 172
6.1.4  什么是Cookie 172
6.1.5  什么是Session 173
6.1.6  Session與Cookie的區(qū)別 173
6.1.7  什么是Token 174
6.1.8  什么是JWT 176
6.1.9  JWT與Token的區(qū)別 177
6.1.10  什么是SSO 177
6.2  基于Passport和JWT實(shí)現(xiàn)身份驗(yàn)證 180
6.2.1  基本概念 181
6.2.2  項(xiàng)目準(zhǔn)備 181
6.2.3  用本地策略實(shí)現(xiàn)用戶登錄 182
6.2.4  用JWT策略實(shí)現(xiàn)接口校驗(yàn) 184
6.2.5  代碼優(yōu)化 188
6.3  基于RBAC實(shí)現(xiàn)權(quán)限控制 191
6.3.1  基本概念 191
6.3.2  數(shù)據(jù)表設(shè)計(jì) 192
6.3.3  項(xiàng)目準(zhǔn)備 193
6.3.4  創(chuàng)建實(shí)體 194
6.3.5  啟動(dòng)服務(wù) 196
6.3.6  實(shí)現(xiàn)角色守衛(wèi)控制 196
6.3.7  生成測(cè)試數(shù)據(jù) 200
6.3.8  測(cè)試效果 202
第7章  系統(tǒng)部署與擴(kuò)展 203
7.1  快速上手Docker 203
7.1.1  初識(shí)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的基本語(yǔ)法 210
7.2.3  Dockerfile實(shí)踐 210
第3部分  擴(kuò)展篇
第8章  單元測(cè)試與端到端測(cè)試 216
8.1  重新認(rèn)識(shí)單元測(cè)試 216
8.1.1  什么是單元測(cè)試 216
8.1.2  為什么大部分公司沒(méi)有進(jìn)行單元測(cè)試 217
8.1.3  為什么要編寫單元測(cè)試 217
8.1.4  先編寫單元測(cè)試還是先編寫代碼 218
8.1.5  測(cè)試驅(qū)動(dòng)開(kāi)發(fā) 219
8.2  在Nest中使用Jest編寫單元測(cè)試 220
8.2.1  初識(shí)Jest 220
8.2.2  項(xiàng)目準(zhǔn)備 223
8.2.3  編寫測(cè)試用例 224
8.2.4  實(shí)現(xiàn)業(yè)務(wù)代碼 225
8.2.5  重構(gòu)代碼 229
8.3  集成測(cè)試 230
8.3.1  編寫測(cè)試用例 230
8.3.2  測(cè)試效果 232
8.4  端到端測(cè)試 232
8.4.1  編寫測(cè)試用例 233
8.4.2  實(shí)現(xiàn)業(yè)務(wù)代碼 235
第9章  日志與錯(cuò)誤處理 237
9.1  如何在Nest中記錄日志 237
9.1.1  為什么要記錄日志 238
9.1.2  內(nèi)置日志器Logger 238
9.1.3  定制日志器 240
9.1.4  記錄日志的正確姿勢(shì) 241
9.1.5  第三方日志器Winston 241
9.2  Winston日志管理實(shí)踐 241
9.2.1  Winston的基礎(chǔ)使用 242
9.2.2  本地持久化日志 244
9.3  面向切面日志統(tǒng)計(jì)實(shí)踐 248
9.3.1  中間件日志統(tǒng)計(jì) 248
9.3.2  攔截器日志統(tǒng)計(jì) 249
9.3.3  過(guò)濾器日志統(tǒng)計(jì) 251
第4部分  Nest項(xiàng)目實(shí)戰(zhàn)篇
第10章  數(shù)字門店管理平臺(tái)開(kāi)發(fā) 254
10.1  產(chǎn)品需求分析與設(shè)計(jì) 254
10.1.1  產(chǎn)品需求說(shuō)明 254
10.1.2  功能原型圖 255
10.2  技術(shù)選型與項(xiàng)目準(zhǔn)備 262
10.2.1  前端技術(shù)選型 262
10.2.2  初始化前端項(xiàng)目 262
10.2.3  前端架構(gòu)設(shè)計(jì) 263
10.2.4  后端技術(shù)選型 264
10.2.5  初始化后端項(xiàng)目 265
10.2.6  后端架構(gòu)設(shè)計(jì) 266
10.3  API接口及數(shù)據(jù)庫(kù)表設(shè)計(jì) 268
10.3.1  API接口功能劃分 268
10.3.2  數(shù)據(jù)庫(kù)設(shè)計(jì) 269
10.4  實(shí)現(xiàn)注冊(cè)登錄 273
10.4.1  頁(yè)面效果展示 273
10.4.2  接口實(shí)現(xiàn) 281
10.5  實(shí)現(xiàn)用戶與角色模塊 290
10.5.1  頁(yè)面效果展示 290
10.5.2  表關(guān)系設(shè)計(jì) 295
10.5.3  接口實(shí)現(xiàn) 299
10.6  實(shí)現(xiàn)商品與訂單模塊 303
10.6.1  頁(yè)面效果展示 304
10.6.2  表關(guān)系設(shè)計(jì) 306
10.6.3  接口實(shí)現(xiàn) 307
10.7  基于Redis實(shí)現(xiàn)商品熱銷榜 315
10.7.1  頁(yè)面效果展示 316
10.7.2  接口實(shí)現(xiàn) 317
10.8  實(shí)現(xiàn)活動(dòng)模塊與定時(shí)任務(wù) 320
10.8.1  頁(yè)面效果展示 320
10.8.2  表關(guān)系設(shè)計(jì) 322
10.8.3  接口實(shí)現(xiàn) 323
10.9  使用Docker Compose部署項(xiàng)目 325
10.9.1  編寫后端Docker Compose文件 325
10.9.2  編寫Dockerfile文件 330
完結(jié)語(yǔ):是終點(diǎn),更是新的起點(diǎn) 334
一個(gè)小小的決定 334
時(shí)間的杠桿 334
結(jié)語(yǔ) 334

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.dappsexplained.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)