作 者:狼叔 著
定 價:99
出 版 社:電子工業出版社
出版日期:2020年01月01日
頁 數:413
裝 幀:平裝
ISBN:9787121359064
●第1章 下一代Web框架Koa 1
1.1 Koa簡介 1
1.1.1 應用場景 2
1.1.2 開發要點 3
1.1.3 Koa入門 4
1.1.4 為什麼選擇Koa 7
1.2 Koa腳手架 8
1.2.1 安裝Koa生成器 9
1.2.2 創建Hello world 10
1.2.3 目錄解析 11
1.2.4 Koa v2中間件的寫法 20
1.2.5 路由 21
1.2.6 切換視圖模板引擎 25
1.2.7 Koa代碼調試 26
1.3 Node.js Web框架演進 29
1.3.1 Node.js http模塊 29
1.3.2 最早的Connect 29
1.3.3 曾經扛鼎的Express框架 33
1.3.4 新興Web開發框架Koa 35
1.3.5 Express和Koa大比拼 38
1.4 測試 38
1.4.1 Node.js測試框架 39
1.4.2 AVA測試框架 39
1.4.3 測試用例與斷言 40
1.4.4 實踐 41
1.4.5 更多內容 44
1.5 本章小結 48
第2章 Koa的核心擴展機制:中間件 49
2.1 中間件 49
2.1.1 什麼是中間件 49
2.1.2 上下文對像 57
2.1.3 回形針一樣的中間件 66
2.1.4 常用中間件 88
2.2 路由 89
2.2.1 koa-router 89
2.2.2 路由詳解 93
2.2.3 將路由放到目錄裡 98
2.3 視圖 101
2.3.1 koa-views 101
2.3.2 默認模板引擎Pug 102
2.3.3 views目錄模板說明 102
2.3.4 consolidate.js 104
2.4 靜態服務模塊 104
2.4.1 koa-static 105
2.4.2 koa-send 106
2.4.3 koa-mount 108
2.4.4 koa-serve-static 108
2.5 本章小結 109
第3章 HTTP必知必會 110
3.1 請求響應模型 110
3.1.1 請求 112
3.1.2 響應 112
3.1.3 核心要點 114
3.2 HTTPS 127
3.2.1 生成證書 129
3.2.2 驗證與自動續約 130
3.2.3 Node.js服務器HTTPS配置 131
3.2.4 Nginx HTTPS配置 132
3.2.5 Nginx HTTPS反向代理配置 134
3.3 代理 136
3.3.1 協議支持 136
3.3.2 mini-proxy 140
3.3.3 hiproxy 146
3.4 本章小結 152
第4章 Koa練習 153
4.1 基礎知識 153
4.1.1 地址 153
4.1.2 HTTP頭部 156
4.1.3 HTTP動詞 161
4.1.4 HTTP狀態碼 163
4.1.5 Cookie 164
4.2 獲取不同參數的3種方法 165
4.2.1 獲取具名參數 166
4.2.2 解析請求體 166
4.2.3 獲取查詢字符串 167
4.3 body解析 168
4.3.1 模塊依賴 168
4.3.2 原理 168
4.3.3 常見的 T 169
4.4 請求的幾種方式 175
4.4.1 表單 176
4.4.2 AJAX 176
4.4.3 命令行 177
4.4.4 HTTP模塊 178
4.4.5 工具軟件 183
4.4.6 測試 183
4.5 API開發 185
4.5.1 API的簡單寫法 185
4.5.2 響應處理 189
4.5.3 RESTful API 190
4.5.4 API訪問鋻權 192
4.5.5 OAuth鋻權 194
4.6 常用中間件 195
4.6.1 會話 196
4.6.2 ETag 198
4.6.3 驗證碼 199
4.6.4 訪問頻率 201
4.7 本章小結 203
第5章 數據庫基礎 204
5.1 入門 204
5.1.1 選擇哪個數據庫 204
5.1.2 了解MVC裡的模型 206
5.1.3 模型的代碼 207
5.1.4 代碼組織結構 209
5.2 MongoDB的安裝與部署 210
5.2.1 安裝與部署的方式 211
5.2.2 在macOS上安裝 212
5.2.3 在Ubuntu上安裝 212
5.2.4 在Windows上安裝 213
5.2.5 更好的啟動方式 213
5.3 Mongoose基礎 214
5.3.1 簡介 214
5.3.2 入門 215
5.3.3 Hello Mongoose 218
5.3.4 核心概念 221
5.3.5 增刪改查操作 223
5.3.6 Schema的類型 232
5.4 Mongoose進階 234
5.4.1 模型擴展 234
5.4.2 虛擬屬性 237
5.4.3 回調鉤子 240
5.4.4 插件機制 244
5.5 本章小結 253
第6章 數據庫進階 254
6.1 分頁 254
6.1.1 使用skip和limit實現分頁 255
6.1.2 使用find和limit實現分頁 256
6.1.3 ObjectID的組成 257
6.1.4 客戶端生成ObjectID 259
6.2 關聯查詢 259
6.2.1 聚合函數 260
6.2.2 聚合管道 261
6.2.3 MapReduce 263
6.2.4 關聯關繫 264
6.2.5 aggregation 266
6.3 事務 270
6.3.1 二階段提交法 270
6.3.2 回滾操作 273
6.4 性能調優 274
6.4.1 profile 275
6.4.2 explain 275
6.4.3 索引優化 276
6.4.4 MongoDB的連接問題 282
6.4.5 MongooseDao 289
6.4.6 異步流程控制 296
6.5 本章小結 303
第7章 前端視圖模板 304
7.1 靜態服務器 304
7.1.1 public目錄 304
7.1.2 實現原理 306
7.1.3 靜態服務 307
7.1.4 預處理中間件 314
7.2 使用模板引擎進行動態渲染 316
7.2.1 模板引擎原理 316
7.2.2 模板引擎規則 324
7.2.3 Vue 333
7.3 Webpack 342
7.3.2 模塊規範 344
7.3.3 模塊加載器 345
7.3.4 模塊打包器 345
7.3.5 Webpack詳解 346
7.4 前後端分離 357
7.5 前端渲染 357
7.5.1 客戶端渲染 357
7.5.2 服務器端渲染 358
7.5.3 React服務器端渲染 360
7.5.4 Serverless時代的渲染層 363
7.6 本章小結 365
第8章 項目實戰 366
8.1 入門 366
8.1.1 Docker 366
8.1.2 Docker Compose 369
8.1.3 環境變量 370
8.1.4 啟動服務器 373
8.2 Egg.js框架 373
8.2.1 使用腳手架 374
8.2.2 目錄說明 375
8.2.3 啟動服務器 379
8.2.4 代碼結構 381
8.2.5 內置對像 384
8.2.6 代碼調試 386
8.2.7 插件擴展機制 387
8.3 egg-cnode源碼 388
8.3.1 目錄約定 388
8.3.2 app目錄 390
8.3.3 數據庫連接 391
8.3.4 模型定義 392
8.3.5 從Controller到Service 393
8.3.6 視圖渲染 396
8.3.7 數據模型 399
8.3.8 API開發 400
8.3.9 測試 403
8.3.10 鋻權 404
8.3.11 後臺管理 412
8.3.12 參數校驗 412
8.4 本章小結 413
Node.js開發簡單,性能極好,一經發布便成了明星級項目。隨著大前端領域的蓬勃發展,跨平臺開發、API構建、Web應用開發等場景愈加常見,Node.js也成為大前端開發的推薦“利器”。本書主要講解Node.js Web應用開發涉及的HTTP基礎知識、常用開發框架、源碼原理、數據庫和項目實戰,旨在向讀者展示如何通過Node.js和Koa編寫出更具前端特色的Web應用。本書還講解了Koa中的核心中間件原理,展望了未來Web應用開發的發展方向。基於Node.js開發Web應用具有上手簡單、開發快速、執行高效等特點,非常適合快速迭代,因此各位大前端領域及後端領域的測試、運維、軟件開發從業者都可以閱讀本書。
狼叔 著
狼叔(網名i5ting),Node.js 技術布道者,“Node全棧”公眾號作者,全棧技術實踐者。曾就職於多家知名IT企業,從事前端開發、後端開發、數據分析等工作,目前負責公司內的Node.js開發和基礎框架開發工作。
"推薦序1提起國內的Node.js布道師,我腦海中出現的第一個名字就是狼叔(i5ting)。狼叔從2015年開始活躍於CNode社區,至今累計發表文章200餘篇,主題豐富多樣——Node.js底層原理、npm目錄結構改進、前後端分離實踐、全棧工程師之路等。這幾年間,狼叔同時運營著自己的公眾號“Node全棧”,每日筆耕不輟,源源不斷地將新鮮、最“硬核”的資訊分享給國內的開發者們。不得不說,他的這種樂於分享的精神,實屬難得。我與狼叔也是在2015年相識的。2015年是Node.js的普及度呈爆發式增長的一年,但那一年的Node.js還遠遠談不上被廣泛使用。當時我在阿裡巴巴數據平臺任職,那時我們所做的部分項目的JavaScript壓縮工具和測試覆蓋率工具還是用Java實現的,這在現在看來可以說是非常匪夷所思的,JavaScript工作流等
"前言Koa是下一代Node.js Web框架。所謂的“下一代”是相對於Express而言的。Koa立身於最“潮”的異步流程控制特性,主要用於改進Node.js開發中的回調地獄痛點,可以說Koa是異步流程控制不斷演進的必然產物。在所有的Node.js Web框架中,Koa無疑是最耀眼的一個。 Koa的生態是非常健全的,基於Koa編寫Web應用可以應對多種場景。如果用得很好,甚至可以基於Koa在前端領域開發各種工具。本書內容本書以Node.js下一代Web框架Koa為核心,主要講解Koa的基礎知識、中間件原理和應用場景,旨在向讀者展示如何基於Koa編寫出更簡單、更具工程化優勢的Web應用。本書共分8章,每章的內容簡介如下。第1章 下一代Web框架Koa本章將介紹Koa框架的入門知識、優勢、應用場景,Koa腳手架的編寫方式,以及Node.js Web框架的等