Node與Express開發(第2版) Web Development with Node and Express: Leveraging the JavaScript Stack

[美]伊桑·布朗(Ethan Brown)

  • Node與Express開發(第2版)-preview-1
  • Node與Express開發(第2版)-preview-2
Node與Express開發(第2版)-preview-1

商品描述

本書系統地講解了使用Express開發動態Web應用的流程和步驟。作者不僅講授了開發公共站點及REST API的基礎知識,還講解了構建單頁、多頁及混合Web應用的規劃方式及最佳實踐。為了適應中間件及相關工具在過去幾年裡的變化,第2版更側重於Express作為提供API的後端服務器,並新增了單頁應用的示例。

本書適合希望使用JavaScript、Node、Express構建Web應用的開發人員閱讀。

作者簡介

伊桑.布朗(Ethan Brown),美國VMS公司技術總監,負責公司旗艦產品的架構和實現。
他擁有20多年的編程經驗,在Node、Express、JavaScript、React的實踐方面擁有獨到見解。

目錄大綱

第1章Express是什麼1
1.1 JavaScript的革命1
1.2 Express簡介2
1.3服務器端應用和客戶端應用4
1.4 Express簡史4
1.5 Node:另一種Web服務器5
1.6 Node生態系統6
1.7開源協議7
1.8小結8

第2章Node的世界9
2.1獲取Node 9
2.2使用終端10
2.3編輯器11
2.4 npm 11
2 .5用Node做一個簡單的Web服務器12
2.5.1 Hello world 13
2.5.2事件驅動編程14
2.5.3路由14
2.5.4提供靜態資源15
2.6進入Express 17

第3章Express的方式18
3.1腳手架18
3.2草地鷚旅遊網站19
3.3初始工作19
3.4視圖與佈局22
3.5靜態文件與視圖25
3.6視圖中的動態內容26
3.7小結26

第4章項目整頓27
4.1項目文件與目錄結構27
4.2最佳實踐28
4.3版本控制28
4.4在本書學習中如何使用Git 29
4.4.1親手錄入29
4. 4.2使用官方版本庫30
4.5 npm包31
4.6項目元數據32
4.7 Node模塊32
4.8小結34

第5章質量保證35
5.1 QA計劃36
5.2 QA:是否值得37
5.3邏輯與表示38
5.4測試類型38
5.5 QA技術38
5.6安裝和配置Jest 39
5.7單元測試40
5.7.1模擬40
5.7.2為可測試性而重構應用40
5.7.3寫第一個測試41
5.7.4測試維護43
5.7.5代碼覆蓋率43
5.8集成測試44
5.9 Linting 47
5.10持續集成50
5.11小結51

第6章request和response對象52
6.1 URL的各個組成部分52
6.2 HTTP請求方法53
6.3請求頭54
6.4響應頭54
6.5互聯網媒體類型55
6.6請求的Body 55
6.7 request對象55
6.8 response對象57
6.9深入源代碼59
6.10按功能歸納59
6.10.1渲染內容60
6.10.2處理表單61
6.10.3 API服務62
6.11小結63

第7章視圖模板——使用Handlebars 64
7. 1何時使用模板65
7.2選擇模板引擎66
7.3 Pug:另闢蹊徑66
7.4 Handlebars基礎67
7.4.1註釋69
7.4.2代碼塊69
7.4.3服務器端模板70
7.4.4視圖和佈局71
7.4.5在Express中使用(或不使用)佈局73
7.4.6 sections 73
7.4.7 partial模板74
7.4.8完善模板76
7. 5小結77

第8章表單處理78
8.1把客戶端數據發送到服務器78
8.2 HTML表單78
8.3表單的編碼79
8.4處理表單的不同做法80
8.5使用Express處理表單81
8.6使用fetch發送表單數據83
8.7文件上傳85
8.8提昇文件上傳的UI 88
8.9小結88

第9章Cookie和Session 89
9.1提取敏感信息91
9.2 Express中的Cookie 91
9.3查看Cookie 93
9. 4 Session 93
9.4.1內存存儲94
9.4.2使用Session 95
9.5使用Session實現flash消息95
9.6 Session的用途97
9.7小結97

第10章中間件98
10.1基本原理99
10.2中間件示例99
10.3常用中間件102
10.4第三方中間件104
10.5小結104

第11章發送郵件105
11.1 SMTP、MSA和MTA 105
11.2接收郵件106
11.3郵件頭106
11.4郵件格式106
11.5 HTML郵件107
11.6 Nodemailer 107
11.6.1發送郵件108
11.6.2發送給多個收件人109
11.7群發郵件更好的選擇110
11.8發送HTML郵件110
11.8.1 HTML郵件中的圖片111
11.8.2使用視圖來發送HTML郵件111
11.8.3封裝郵件功能113
11.9小結114

第12章考慮生產環境中的問題115
12.1運行環境115
12.2特定環境的配置116
12.3運行Node進程117
12.4網站的擴展118
12.4.1使用應用集群實現水平擴展119
12. 4.2處理未捕獲的異常121
12.4.3使用多台服務器完成水平擴展123
12.5監控網站的運行123
12.6壓力測試124
12.7小結125

第13章持久化126
13.1文件系統持久化126
13.2雲持久化128
13.3數據庫持久化129
13.3.1關於性能的提醒129
13.3.2數據庫層抽象130
13.3.3設置MongoDB 131
13.3.4 Mongoose 132
13.3.5使用Mongoose連接數據庫132
13.3.6創建模式和模型133
13.3.7使用種子數據初始化134
13.3.8獲取數據136
13.3.9更新數據138
13.3.10 PostgreSQL 139
13.3.11新增數據145
13.4使用數據庫存儲Session 146
13.5小結148
第14章路由149
14.1路由與SEO 151
14.2子域名151
14.3路由處理函數也是中間件152
14.4路由路徑和正則表達式154
14.5路由參數154
14.6組織路由155
14.7在模塊中聲明路由156
14.8合乎邏輯地分組路由157
14.9自動化渲染視圖158
14.10小結159

第15章REST API和JSON 160
15.1 JSON和XML 161
15.2我們的API 161
15.3 API錯誤報告162
15.4跨域資源共享163
15.5測試164
15.6使用Express提供API 166
15.7小結167

第16章單頁應用168
16.1 Web應用開發簡史168
16.2 SPA技術選擇171
16.3創建React應用172
16.4 React基本概念172
16.4.1主頁174
16.4.2路由176
16.4.3度假產品頁— —可視化設計178
16.4.4度假產品頁——跟服務器端集成179
16.4.5向服務器發送信息181
16.4.6狀態管理184
16.4.7部署選擇185
16.5小結185
第17章靜態內容187
17.1性能上的考量188
17.2內容分發網絡(CDN) 189
17.3為CDN而設計189
17.3.1服務器端渲染的網站190
17.3.2單頁應用190
17.4緩存靜態資源191
17.5變更靜態內容192
17.6小結193

第18章安全194
18.1 HTTPS 194
18.1.1生成自己的證書195
18.1.2使用免費的證書中心196
18.1.3購買證書196
18.1.4為Express應用啟用HTTPS 198
18.1.5有關端口的說明199
18.1.6 HTTPS與代理200
18.2跨站請求偽造201
18.3認證202
18.3.1認證與授權202
18.3. 2使用密碼認證的問題203
18.3.3第三方認證203
18.3.4在數據庫裡存儲用戶信息204
18.3.5認證與註冊及用戶體驗205
18.3.6 Passport 205
18.3 .7基於角色的授權214
18.3.8增加認證提供者215
18.4小結216

第19章集成第三方API 217
19.1社交媒體217
19.1.1社交媒體插件與網站性能217
19. 1.2搜索推文218
19.1.3展現推文221
19.2地理編碼223
19.2.1使用谷歌生成地理編碼223
19.2.2為你的數據做地理編碼225
19.2.3顯示地圖227
19.3天氣數據228
19.4小結230

第20章調試231
20. 1調試原則第一條231
20.2利用REPL和控制台232
20.3使用Node的內建調試器233
20.4 Node調試客戶端233
20.5調試異步函數237
20.6調試Express 237
20. 7小結239

第21章上線240
21.1域名註冊與託管240
21.1.1域名系統241
21.1.2安全241
21.1.3頂級域名242
21.1.4子域名243
21.1 .5域名服務器243
21.1.6託管服務245
21.1.7部署247
21.2小結250

第22章維護251
22.1維護的原則251
22.1.1長遠規劃251
22.1.2使用源代碼控制253
22.1.3使用問題跟踪系統253
22.1.4保持良好的“衛生習慣” 253
22.1.5不要拖延253
22.1.6例行QA核查254
22.1.7監控分析254
22.1.8優化性能255
22.1 .9優先跟踪潛在客戶255
22.1.10避免“不可見”的故障256
22.2代碼重用與重構257
22.2.1私有npm倉庫257
22.2.2中間件257
22.3小結259

第23章更多資源260
23.1在線文檔260
23.2期刊261
23.3 Stack Overflow 261
23.4對Express做貢獻263
23.5小結265

關於作者266
關於封面266