第1篇 基礎知識
第1章 Node.js入門 2
1.1 Node.js介紹 2
1.1.1 什麼是Node.js 3
1.1.2 Node.js的曆史和發展過程 4
1.1.3 Node.js的特點和應用場景 7
1.1.4 安裝Node.js 8
1.1.5 實戰演練:使用Node.js搭建一個HTTP Server 10
1.2 NPM 11
1.2.1 NPM介紹 12
1.2.2 NPM模塊結構 13
1.2.3 使用NVM控製Node.js版本 16
1.2.4 Web代理工具NProxy 18
1.2.5 實戰演練:在npm.org上發布一個模塊 20
1.3 Visual Studio Code編輯器 22
1.3.1 Visual Studio Code的安裝及其功能 22
1.3.2 使用Visual Studio Code調試Node.js 23
1.4 本章小結 25
第2章 遇見Koa 26
2.1 Koa介紹 26
2.1.1 Koa的前世今生 26
2.1.2 Koa的安裝及搭建(視頻演示) 29
2.2 Context對象 30
2.2.1 什麼是Context對象 31
2.2.2 常用屬性和方法 31
2.3 Koa的中間件 35
2.3.1 中間件概念 35
2.3.2 實戰演練:使用中間件獲取響應時間(視頻演示) 38
2.3.3 常用Koa中間件介紹 39
2.4 本章小結 43
第3章 路由 44
3.1 路由介紹 44
3.1.1 路由的概念 45
3.1.2 實戰演練:使用Koa中的簡單路由自定義404頁麵 46
3.2 koa-router路由中間件 48
3.2.1 koa-router的安裝和介紹 48
3.2.2 RESTful規範 48
3.2.3 koa-router用法(視頻演示) 50
3.2.4 通過koa-router實現接口的權限控製 55
3.3 本章小結 58
第4章 HTTP 59
4.1 HTTP介紹 59
4.1.1 HTTP的誕生 59
4.1.2 URI和URL 62
4.1.3 常用的HTTP狀態碼 63
4.1.4 常用的請求方法 63
4.1.5 常用的HTTP首部字段 64
4.2 HTTP/2 65
4.2.1 采用二進製格式傳輸數據 65
4.2.2 多路復用 65
4.2.3 流的優先級 66
4.2.4 首部壓縮 66
4.2.5 服務端推送 67
4.3 Node.js的querystring模塊 67
4.3.1 querystring模塊的使用 67
4.3.2 koa-router中的querystring(視頻演示) 68
4.3.3 實戰演練:電影搜索列錶 69
4.4 koa-bodyparser中間件 72
4.4.1 koa-bodyparser介紹 72
4.4.2 koa-bodyparser的使用(視頻演示) 73
4.4.3 實戰演練:實現用戶注冊功能並進行數據解析 74
4.5 本章小結 77
第2篇 應用實戰
第5章 構建Koa Web應用 80
5.1 MVC 80
5.1.1 MVC的發展曆程 81
5.1.2 MVC三層架構 81
5.1.3 在Koa中實現MVC(視頻演示) 83
5.2 模闆引擎 87
5.2.1 什麼是模闆引擎 88
5.2.2 常見的模闆引擎有哪些 88
5.2.3 Nunjucks語法介紹 91
5.2.4 Nunjucks在Koa中的應用(視頻演示) 96
5.3 靜態資源 97
5.3.1 靜態資源的類型 98
5.3.2 koa-static簡介 99
5.3.3 koa-static常用配置(視頻演示) 99
5.3.4 實戰演練:開發登錄驗證頁麵(視頻演示) 100
5.4 其他常用開發技巧 103
5.4.1 簡易版koa-json插件開發(視頻演示) 103
5.4.2 使用koa-multer中間件實現文件上傳 106
5.5 本章小結 110
第6章 數據庫 111
6.1 數據庫介紹 111
6.1.1 什麼是數據庫 111
6.1.2 常見的數據庫 113
6.2 在Koa中應用MySQL數據庫 114
6.2.1 下載安裝MySQL 114
6.2.2 Sequelize介紹 118
6.2.3 實戰演練:客戶信息數據展現 122
6.3 在Koa中應用MongoDB數據庫 126
6.3.1 下載安裝MongoDB 126
6.3.2 Mongoose介紹 128
6.3.3 實戰演練:課程錶數據展現 132
6.4 在Koa中應用Redis數據庫 135
6.4.1 什麼是Redis 135
6.4.2 Redis庫介紹 138
6.4.3 實戰演練:持久化用戶Session狀態 141
6.5 本章小結 145
第7章 單元測試 146
7.1 Chai斷言庫 147
7.1.1 Chai的介紹和安裝 147
7.1.2 Chai的使用 147
7.2 Mocha框架 149
7.2.1 Mocha的介紹和安裝 150
7.2.2 Mocha的使用 150
7.3 SuperTest測試RESTful API 154
7.3.1 SuperTest的介紹和安裝 154
7.3.2 SuperTest的使用 154
7.4 其他常用工具 155
7.4.1 Nock模擬服務器響應 156
7.4.2 Nyc測試覆蓋率 157
7.5 本章小結 159
第8章 優化與部署 161
8.1 服務優化 161
8.1.1 使用log4js記錄日誌(視頻演示) 162
8.1.2 自定義錯誤頁(視頻演示) 168
8.1.3 異常捕獲處理 173
8.1.4 實戰演練:優化Web開發項目結構(視頻演示) 176
8.2 部署 179
8.2.1 Node.js進程管理器PM2 179
8.2.2 應用容器引擎Docker 182
8.2.3 在綫免費開源集成Travis CI 185
8.2.4 利用Nginx部署HTTPS 189
8.3 服務監控 192
8.3.1 Node.js服務性能指標及采集 192
8.3.2 日誌分析係統ELK 196
8.3.3 Keymetrics監控雲服務 197
8.4 本章小結 199
第3篇 項目實戰:從零開始搭建微信小程序後颱
第9章 雲相冊功能介紹和準備工作 203
9.1 應用介紹 204
9.2 小程序開發賬戶申請 206
9.3 準備域名 209
9.3.1 注冊域名 209
9.3.2 實名認證 211
9.3.3 域名備案 212
9.4 準備雲服務器 216
9.5 配置DNS解析 218
9.6 本章小結 221
第10章 雲相冊服務開發 222
10.1 小程序登錄 222
10.2 掃碼登錄 230
10.3 小程序接口 236
10.3.1 建立數據模型 236
10.3.2 定義相冊接口 238
10.3.3 定義照片接口 242
10.4 後颱管理係統接口 244
10.4.1 定義用戶列錶接口 244
10.4.2 定義權限管理接口 246
10.4.3 定義獲取照片接口 247
10.4.4 定義審核照片接口 249
10.5 記錄日誌 249
10.6 本章小結 252
第11章 雲相冊小程序開發 254
11.1 項目介紹 254
11.2 結閤Redux實現小程序組件通信 259
11.3 “個人中心”頁麵 264
11.4 “新建相冊”頁麵 267
11.4.1 自定義組件用法介紹 267
11.4.2 組件事件 269
11.4.3 實現“新建相冊”組件 270
11.5 “相冊列錶”頁麵 272
11.5.1 展示相冊列錶 273
11.5.2 進入指定相冊頁麵 274
11.5.3 調用“新建相冊”組件 274
11.6 “照片列錶”頁麵 275
11.6.1 獲取照片列錶數據 276
11.6.2 數據按日期分組 277
11.6.3 上傳照片到當前相冊 278
11.6.4 單擊圖片顯示高清大圖 279
11.7 小程序審核發布 280
11.8 本章小結 282
第12章 雲相冊後颱管理係統 283
12.1 整體架構 284
12.1.1 基本文件結構 285
12.1.2 前端模闆結構 287
12.1.3 路由設計 290
12.2 相冊列錶及相關功能 292
12.2.1 分類展示照片 293
12.2.2 審核照片 297
12.2.3 HTTP通信 301
12.2.4 分頁控件 302
12.3 用戶列錶及相關功能 304
12.4 登錄與鑒權 309
12.4.1 登錄 310
12.4.2 鑒權中間件 315
12.5 額外展開:SVG動畫效果及其他 317
12.6 本章小結 318
第13章 雲相冊服務器部署 319
13.1 部署數據庫 321
13.1.1 存儲設置 322
13.1.2 安全策略 323
13.2 部署Nginx 325
13.2.1 安裝OpenResty 325
13.2.2 Nginx配置 326
13.2.3 插件擴展 328
13.3 部署HTTPS 329
13.3.1 強製HTTPS跳轉 329
13.3.2 添加WWW跳轉 330
13.4 配置Koa服務 331
13.5 本章小結 332
· · · · · · (
收起)