序 XIV
前言 XV
第1章 初識Express 1
1.1 JavaScript革命 1
1.2 初識Express 2
1.3 Express 簡史 3
1.4 升級到Express 4.0 4
1.5 Node:一種新型Web 服務器 4
1.6 Node 的生態係統 5
1.7 授權 6
第2章 從Node開始 8
2.1 獲取Node 8
2.2 使用終端 9
2.3 編輯器 10
2.4 npm 11
2.5 用Node 實現的簡單Web服務器 12
2.5.1 Hello World 12
2.5.2 事件驅動編程 13
2.5.3 路由 13
2.5.4 靜態資源服務 14
2.6 走嚮Express 16
第3章 省時省力的Express 17
3.1 腳手架 17
3.2 草地鷚旅行社網站 18
3.3 初始步驟 18
3.3.1 視圖和布局 21
3.3.2 視圖和靜態文件 24
3.3.3 視圖中的動態內容 24
3.4 小結 25
第4章 工欲善其事,必先利其器 26
4.1 最佳實踐 26
4.2 版本控製 27
4.3 針對本書如何使用Git 27
4.3.1 如果你要自己動手 28
4.3.2 如果你要使用官方存儲庫 29
4.4 npm 包 29
4.5 項目元數據 31
4.6 Node 模塊 31
第5章 質量保證 33
5.1 QA:值得嗎 34
5.2 邏輯與展示 35
5.3 測試的類型 35
5.4 QA 技術概覽 35
5.5 運行你的服務器 36
5.6 頁麵測試 36
5.7 跨頁測試 40
5.8 邏輯測試 43
5.9 去毛 43
5.10 鏈接檢查 44
5.11 用Grunt 實現自動化 44
5.12 持續集成 46
第6章 請求和響應對象 48
6.1 URL 的組成部分 48
6.2 HTTP 請求方法 49
6.3 請求報頭 50
6.4 響應報頭 50
6.5 互聯網媒體類型 51
6.6 請求體 51
6.7 參數 51
6.8 請求對象 51
6.9 響應對象 53
6.10 獲取更多信息 55
6.11 小結 56
6.11.1 內容渲染 56
6.11.2 處理錶單 57
6.11.3 提供一個API 58
第7章 Handlebars 模闆引擎 60
7.1 唯一一條絕對規則 61
7.2 選擇模闆引擎 61
7.3 Jade:不走尋常路 62
7.4 Handlebars 基礎 63
7.4.1 注釋 64
7.4.2 塊級錶達式 64
7.4.3 服務器端模闆 66
7.4.4 視圖和布局 67
7.4.5 在Express 中使用(或不使用)布局 69
7.4.6 局部文件 69
7.4.7 段落 71
7.4.8 完善你的模闆 72
7.4.9 客戶端Handlebars 73
7.5 小結 75
第8章 錶單處理 76
8.1 嚮服務器發送客戶端數據 76
8.2 HTML 錶單 76
8.3 編碼 77
8.4 處理錶單的不同方式 78
8.5 Express 錶單處理 79
8.6 處理AJAX 錶單 81
8.7 文件上傳 83
8.8 jQuery 文件上傳 85
第9章 Cookie 與會話 88
9.1 憑證的外化 89
9.2 Express 中的Cookie 90
9.3 檢查Cookie 91
9.4 會話 92
9.4.1 內存存儲 92
9.4.2 使用會話 93
9.5 用會話實現即顯消息 93
9.6 會話的用途 95
第10章 中間件 96
10.1 常用中間件 100
10.2 第三方中間件 102
第11章 發送郵件 103
11.1 SMTP、MSA 和MTA 103
11.2 接收郵件 104
11.3 郵件頭 104
11.4 郵件格式 104
11.5 HTML 郵件 105
11.6 Nodemailer 105
11.6.1 發送郵件 106
11.6.2 將郵件發送給多個接收者 107
11.7 發送批量郵件的更佳選擇 108
11.8 發送HTML 郵件 108
11.8.1 HTML 郵件中的圖片 108
11.8.2 用視圖發送HTML 郵件 109
11.8.3 封裝郵件功能 111
11.9 將郵件作為網站監測工具 112
第12章 與生産相關的問題 113
12.1 執行環境 113
12.2 環境特定配置 114
12.3 擴展你的網站 115
12.3.1 用應用集群擴展 116
12.3.2 處理未捕獲的異常 118
12.3.3 用多颱服務器擴展 121
12.4 網站監控 122
12.4.1 第三方正常運行監控 122
12.4.2 應用程序故障 122
12.5 壓力測試 123
第13章 持久化 124
13.1 文件係統持久化 124
13.2 雲持久化 126
13.3 數據庫持久化 126
13.3.1 關於性能 127
13.3.2 設置MongoDB 127
13.3.3 Mongoose 128
13.3.4 使用Mongoose連接數據庫 128
13.3.5 創建模式和模型 129
13.3.6 添加初始數據 130
13.3.7 獲取數據 131
13.3.8 添加數據 133
13.3.9 用MongoDB存儲會話數據 134
第14章 路由 137
14.1 路由和SEO 139
14.2 子域名 139
14.3 路由處理器是中間件 140
14.4 路由路徑和正則錶達式 141
14.5 路由參數 142
14.6 組織路由 143
14.7 在模塊中聲明路由 143
14.8 按邏輯對處理器分組 144
14.9 自動化渲染視圖 145
14.10 其他的路由組織方式 146
第15章 REST API 和JSON 147
15.1 JSON和XML 148
15.2 我們的API 148
15.3 API 錯誤報告 149
15.4 跨域資源共享 150
15.5 我們的數據存儲 150
15.6 我們的測試 151
15.7 用Express 提供API 152
15.8 使用REST 插件 153
15.9 使用子域名 155
第16章 靜態內容 157
16.1 性能方麵的考慮 158
16.2 麵嚮未來的網站 158
16.2.1 靜態映射 159
16.2.2 視圖中的靜態資源 160
16.2.3 CSS 中的靜態資源 161
16.3 服務器端JavaScript中的靜態資源 162
16.4 客戶端JavaScript中的靜態資源 163
16.5 提供靜態資源 164
16.6 修改靜態內容 165
16.7 打包和縮小 165
16.8 關於第三方庫 170
16.9 QA 170
16.10 小結 171
第17章 在Express 中實現MVC 173
17.1 模型 174
17.2 視圖模型 175
17.3 控製器 177
17.4 小結 179
第18章 安全 180
18.1 HTTPS 180
18.1.1 生成自己的證書 181
18.1.2 使用免費的證書頒發機構 182
18.1.3 購買證書 182
18.1.4 對你的Express 應用啓用HTTPS 184
18.1.5 關於端口的說明 185
18.1.6 HTTPS 和代理 185
18.2 跨站請求僞造 187
18.3 認證 187
18.3.1 認證與授權 188
18.3.2 密碼的問題 188
18.3.3 第三方認證 188
18.3.4 把用戶存在數據庫中 189
18.3.5 認證與注冊和用戶體驗 190
18.3.6 Passport 190
18.3.7 基於角色的授權 199
18.3.8 添加更多認證提供者 200
18.4 小結 201
第19章 集成第三方API 202
19.1 社交媒體 202
19.1.1 社交媒體插件和站點性能 202
19.1.2 搜索推文 203
19.1.3 渲染推文 206
19.2 地理編碼 209
19.2.1 用榖歌的地理編碼 209
19.2.2 對你的數據做地理編碼 210
19.2.3 顯示地圖 213
19.2.4 提升客戶端性能 215
19.3 天氣數據 216
19.4 小結 217
第20章 調試 218
20.1 調試的首要原則 218
20.2 利用好REPL 和控製颱 219
20.3 利用Node 內置的調試器 220
20.4 Node 探查器 220
20.5 調試異步函數 223
20.6 調試Express 224
第21章 正式啓用 226
21.1 域名注冊和托管服務 226
21.1.1 域名係統 227
21.1.2 安全 227
21.1.3 頂級域名 228
21.1.4 子域名 229
21.1.5 域名服務器 229
21.1.6 托管 230
21.1.7 部署 233
21.2 小結 236
第22章 維護 237
22.1 維護的原則 237
22.1.1 有長遠規劃 237
22.1.2 使用源碼控製係統 239
22.1.3 使用問題追蹤係統 239
22.1.4 良好的衛生習慣 239
22.1.5 不要拖延 239
22.1.6 做常規的QA檢查 240
22.1.7 監測分析 240
22.1.8 性能優化 240
22.1.9 潛在用戶追蹤優先 241
22.1.10 防止齣現“不可見的”錯誤 242
22.2 代碼重用及重構 243
22.2.1 私有npm庫 243
22.2.2 中間件 244
22.3 小結 246
第23章 其他資源 247
23.1 在綫文檔 247
23.2 期刊 248
23.3 Stack Overflow 248
23.4 為Express做貢獻 250
23.5 小結 252
關於封麵 253
關於作者 254
· · · · · · (
收起)