第1章 Node.js的優勢 1
1.1 為什麼是JavaScript語言 1
1.2 為什麼經常說Node.js不適閤大型應用 3
第2章 Egg.js框架核心原理與實現 6
2.1 異步基礎 6
2.2 Koa.js基礎知識 15
2.2.1 Koa.js 中間件核心代碼 16
2.2.2 Koa.js插件 18
2.3 Egg.js 基礎知識 21
2.3.1 實現 egg-core 22
2.3.2 實現 egg-init 26
2.3.3 實現egg-cluster 30
2.4 Egg.js插件 33
2.4.1 egg-socket.io 33
2.4.2 原理解讀 39
2.5 製作一個Egg.js插件 43
第3章 構建後端API服務 52
3.1 安裝相關組件 52
3.2 發布一個插件 59
3.2.1 創建Flash插件 59
3.2.2 使用egg-msg-flash 72
3.2.3 使用egg-y-validator 73
3.3 規範化 73
3.3.1 添加新的scripts支持ESLint自修復 74
3.3.2 添加插件支持 74
3.3.3 prettier格式化工具 76
3.3.4 同步代碼編輯器配置 76
3.4 第一個JSON請求 77
3.4.1 給全局添加一些方法 77
3.4.2 全局化一些東西 84
3.4.3 自動路由 86
3.4.4 創建 PostMan 測試 88
3.5 注冊服務 91
3.5.1 Invitation模型 91
3.5.2 注釋 93
3.5.3 User模型 96
3.5.4 修改控製器 97
3.5.5 添加驗證邏輯 98
3.5.6 幫助方法 99
3.5.7 User服務 101
3.5.8 PostMan測試 103
3.6 登錄服務 104
3.7 郵件與調試 115
3.7.1 理解發送郵件的原理 115
3.7.2 安裝郵件插件 115
3.7.3 環境與調試 116
3.7.4 全局調試 118
3.7.5 VSCode全局調試 121
3.7.6 發送驗證郵件 122
3.7.7 添加邏輯 125
3.7.8 驗證 135
3.8 構建 RESTful API 137
3.8.1 什麼是RESTful API 137
3.8.2 創建RESTController基礎類便於繼承 138
3.8.3 測試Images RESTful API 141
3.8.4 構建後颱的REST路由 143
3.8.5 構建控製器 145
3.8.6 測試後颱路由 148
3.8.7 關於驗證 149
3.9 安全地開放API 151
3.10 實現OAuth接口 158
3.10.1 實現授權碼官方文檔所要求的接口 158
3.10.2 實現刷新驗證碼接口 167
3.10.3 實現 authenticate 所需接口 169
3.11 完善OAuth與測試 170
3.11.1 發放Token 170
3.11.2 新建客戶端項目 172
3.11.3 測試OAuth 173
3.12 支付寶支付 176
3.12.1 什麼是非對稱加密 176
3.12.2 注冊支付寶 176
3.12.3 生成非對稱秘鑰 176
3.12.4 實現 177
3.12.5 添加路由 180
3.12.6 內網穿透 180
3.12.7 測試 182
3.13 社會化登錄 183
第4章 構建後颱管理頁麵 189
4.1 後端開發 189
4.1.1 安裝VSCode插件 189
4.1.2 獲取腳手架 189
4.1.3 安裝依賴 190
4.1.4 修改代碼 190
4.1.5 跨域請求 191
4.1.6 修改後端代碼支持跨域 192
4.1.7 在前端添加存儲 198
4.2 模型列錶 200
4.3 添加數據 209
4.4 修改邏輯 220
第5章 前端界麵設計與實現 228
5.1 搭建前端開發環境 228
5.1.1 開始 228
5.1.2 創建Header頭部 229
5.1.3 將變量提取齣來 234
5.1.4 添加路徑重寫 235
5.2 AppFooter組件 237
5.2.1 做一些配置 237
5.2.2 創建src/components/layouts/AppFooter.vue 238
5.2.3 網絡識彆信息 247
5.2.4 修改一下全局樣式 247
5.2.5 查看頁麵 248
5.2.6 提升編譯速度 248
5.3 首頁 249
5.4 替換成為真實數據 269
5.4.1 完成後端Image API 269
5.4.2 修改首頁的代碼 271
5.4.3 添加API邏輯 276
5.4.4 效果 278
5.5 圖片詳情頁 278
5.5.1 創建路由 279
5.5.2 安裝依賴 279
5.5.3 創建視圖 279
5.5.4 添加插件 285
5.5.5 創建評論組件 286
5.5.6 測試 290
5.5.7 關於服務端訪問DOM 290
5.6 注冊頁麵 294
5.6.1 注冊路由 294
5.6.2 新建signup.vue頁麵 295
5.6.3 增強錯誤提示 299
5.7 登錄頁麵 299
5.8 完善詳情與評論 310
5.9 個人中心 321
5.10 創建圖片 336
5.10.1 創建又拍雲存儲 336
5.10.2 添加後端API 338
5.10.3 前端界麵 340
5.10.4 測試 348
5.11 團隊 349
5.11.1 功能是如何工作的 350
5.11.2 數據庫 350
5.11.3 後端 356
5.11.4 前端 363
5.11.5 測試 372
第6章 部署與運維 374
6.1 認識Docker 374
6.1.1 解決瞭什麼問題 374
6.1.2 使用Docker的流程 375
6.1.3 安裝Docker 378
6.1.4 使用加速器 378
6.1.5 下載一個基礎鏡像 379
6.1.6 hello world 379
6.2 手動構建鏡像 380
6.3 編寫Dockerfile文件 384
6.4 Docker Compose 387
6.4.1 安裝docker-compose 387
6.4.2 命令行接口 388
6.4.3 Egg.js簡單實例 389
6.4.4 增加服務 391
6.5 集群 396
6.5.1 Docker集群 396
6.5.2 集群初始化 396
6.5.3 實例 397
6.6 持續部署 400
6.6.1 部署主機免密碼登錄 400
6.6.2 客戶端鈎子 401
6.6.3 使用服務端鈎子進行部署 403
6.6.4 使用 shipit 404
6.6.5 使用 Ansible 部署 406
6.7 持續集成 409
6.8 Kubernetes集群 423
6.8.1 簡單使用 423
6.8.2 如何創建應用 425
6.8.3 命令行管理 430
6.8.4 通過UI創建應用 433
6.8.5 添加持續集成 439
6.8.6 固定IP地址 441
6.8.7 部署前端 442
第7章 性能分析與優化 448
7.1 服務器性能分析與測試 448
7.2 用戶追蹤 458
7.2.1 百度分析 458
7.2.2 Google分析 460
7.2.3 其他付費服務 461
7.3 前端性能分析與優化 461
7.3.1 lighthouse 461
7.3.2 sonarwhal 462
7.3.3 圖片壓縮 464
7.3.4 錯誤上報 465
7.3.5 接收用戶反饋 466
· · · · · · (
收起)