NESTJS全棧開發解析 版權信息
- ISBN:9787302671008
- 條形碼:9787302671008 ; 978-7-302-67100-8
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>
NESTJS全棧開發解析 本書特色
《NestJS全棧開發解析:快速上手與實踐》是一本深入淺出的指南,旨在幫助讀者系統地學習NestJS框架的基礎知識和 應用,以及如何將其應用到實際項目中。《NestJS全棧開發解析:快速上手與實踐》內容豐富、實用性強,涵蓋了NestJS的核心概念、數據庫編程、身份驗證與授權、Redis緩存、Docker部署等關鍵內容,同時通過實戰案例幫助讀者將所學知識轉化為實際項目應用。適合Node.js開發從業者和渴望學習全棧知識的前端開發人員閱讀,也可作為培訓機構及大中專教學用書。如果您希望深入了解NestJS,并將其運用于實際項目中,那么這本書將是您的不二選擇。
NESTJS全棧開發解析 內容簡介
"《NestJS全棧開發解析:快速上手與實踐》旨在幫助讀者快速掌握NestJS(簡稱Nest)開發,并應用于實戰項目。本書共10章,首先介紹基本概念,為讀者打下堅實的知識基礎。接著,通過簡潔的代碼示例進行知識點的串聯講解,幫助讀者快速克服學習瓶頸。*終,通過實踐能力和工程思維的培養,幫助讀者將知識從線性結構轉變為網狀結構,形成以Nest為基礎的全棧知識體系。
《NestJS全棧開發解析:快速上手與實踐》采用通俗易懂的點線面知識構建方式進行講解,適合從事前端開發和Node.js開發的工程師學習,同時也適合有意向學習Nest全棧知識的開發者。"
NESTJS全棧開發解析 目錄
目 錄
**部分 基礎篇
第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 什么是Nest15
2.1.1 Nest概述15
2.1.2 Nest的主要特點15
2.1.3 Nest的應用場景16
2.2 快速上手Nest CLI16
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 初識Multer89
3.7.2 單文件上傳91
3.7.3 多文件上傳94
3.7.4 上傳任意文件98
3.7.5 文件驗證99
第2部分 進階篇
第4章 Nest與數據庫102
4.1 快速上手MySQL102
4.1.1 安裝和運行102
4.1.2 MySQL的常用命令105
4.1.3 可視化操作MySQL107
4.2 MySQL表之間的關系112
4.2.1 一對一關系112
4.2.2 一對多/多對一關系119
4.2.3 多對多關系121
4.3 快速上手TypeORM126
4.3.1 基本概念126
4.3.2 項目準備126
4.3.3 創建模型及實體126
4.3.4 定義數據列及類型127
4.3.5 連接數據庫128
4.3.6 使用Repository操作CRUD129
4.3.7 使用QueryBuilder操作CRUD131
4.4 使用TypeORM處理多表關系134
4.4.1 一對一關系134
4.4.2 一對多/多對一關系140
4.4.3 多對多關系142
4.5 在Nest中使用TypeORM操作MySQL144
4.5.1 項目準備144
4.5.2 使用EntityManager操作實體147
4.5.3 使用Repository操作實體148
4.5.4 使用QueryBuilder操作實體151
第5章 性能優化之數據緩存154
5.1 快速上手Redis154
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 什么是Cookie172
6.1.5 什么是Session173
6.1.6 Session與Cookie的區別173
6.1.7 什么是Token174
6.1.8 什么是JWT176
6.1.9 JWT與Token的區別177
6.1.10 什么是SSO177
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 快速上手Docker203
7.1.1 初識Docker203
7.1.2 安裝Docker204
7.1.3 Docker的使用205
7.2 快速上手Dockerfile209
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 初識Jest220
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 內置日志器Logger238
9.1.3 日志器240
9.1.4 記錄日志的正確姿勢241
9.1.5 第三方日志器Winston241
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項目實戰篇
0章 數字門店管理平臺開發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全棧開發解析 作者簡介
溫健民,畢業于廣東海洋大學計算機系,擁有5年前端開發經驗,先后在某互聯網公司擔任前端工程師和前端技術leader職位。在Vue、React以及前端工程化方面有著深入的研究。同時是掘金技術博主,Nest技術愛好者,也是hello-algo算法開源項目的貢獻者。