定 價(jià):¥128.00
作 者: | (美)西蒙·霍姆斯,(美)克萊夫·哈伯 |
出版社: | 清華大學(xué)出版社 |
叢編項(xiàng): | |
標(biāo) 簽: | 暫缺 |
ISBN: | 9787302551850 | 出版時(shí)間: | 2020-06-01 | 包裝: | |
開(kāi)本: | 16開(kāi) | 頁(yè)數(shù): | 536 | 字?jǐn)?shù): |
目 錄
第Ⅰ部分 設(shè)置基線(xiàn)
第1章 全棧開(kāi)發(fā)介紹 3
1.1 為何學(xué)習(xí)全棧 4
1.1.1 Web開(kāi)發(fā)簡(jiǎn)史 4
1.1.2 全棧開(kāi)發(fā)的趨勢(shì) 6
1.1.3 學(xué)習(xí)全棧開(kāi)發(fā)的益處 7
1.1.4 為何專(zhuān)門(mén)介紹MEAN 7
1.2 Node.js介紹 8
1.2.1 JavaScript:MEAN技術(shù)棧中唯一的語(yǔ)言 9
1.2.2 快速、高效和可擴(kuò)展 9
1.2.3 通過(guò)npm使用預(yù)構(gòu)建的包 12
1.3 Express介紹 13
1.3.1 簡(jiǎn)化服務(wù)器配置 13
1.3.2 路由響應(yīng)URL 13
1.3.3 視圖:HTML響應(yīng) 13
1.3.4 通過(guò)會(huì)話(huà)記錄訪(fǎng)問(wèn)者的信息 14
1.4 MongoDB介紹 14
1.4.1 關(guān)系數(shù)據(jù)庫(kù)與文檔數(shù)據(jù)庫(kù) 14
1.4.2 MongoDB文檔:JavaScript數(shù)據(jù)存儲(chǔ) 15
1.4.3 不止是文檔數(shù)據(jù)庫(kù) 16
1.4.4 MongoDB的不足之處 16
1.4.5 Mongoose:關(guān)于數(shù)據(jù)建模更多的事 16
1.5 Angular介紹 17
1.5.1 jQuery和Angular 18
1.5.2 雙向數(shù)據(jù)綁定:處理頁(yè)面中的數(shù)據(jù) 18
1.5.3 使用Angular加載新頁(yè)面 18
1.5.4 Angular的缺陷 19
1.5.5 使用TypeScript進(jìn)行開(kāi)發(fā) 20
1.6 相關(guān)配套支持 20
1.6.1 使用Twitter Bootstrap創(chuàng)建用戶(hù)界面 20
1.6.2 使用Git管理源代碼的版本 21
1.6.3 使用Heroku作為主機(jī) 22
1.7 結(jié)合實(shí)際示例將它們結(jié)合到一起 22
1.7.1 介紹應(yīng)用程序示例 22
1.7.2 MEAN技術(shù)棧組件如何協(xié)同工作 24
1.8 本章小結(jié) 24
第2章 設(shè)計(jì)MEAN技術(shù)棧架構(gòu) 27
2.1 通用的MEAN技術(shù)棧架構(gòu) 27
2.2 進(jìn)一步了解單頁(yè)面應(yīng)用 28
2.2.1 對(duì)搜索引擎不友好 29
2.2.2 Google Analytics和瀏覽器歷史記錄 30
2.2.3 初始化速度 30
2.2.4 選擇單頁(yè)面應(yīng)用還是非單頁(yè)面應(yīng)用 31
2.3 設(shè)計(jì)一種靈活的MEAN架構(gòu) 32
2.3.1 博客引擎需求 32
2.3.2 博客引擎架構(gòu) 33
2.3.3 最佳實(shí)踐:為數(shù)據(jù)層構(gòu)建內(nèi)部API 36
2.4 規(guī)劃真實(shí)的應(yīng)用程序 37
2.4.1 整體規(guī)劃應(yīng)用程序 38
2.4.2 設(shè)計(jì)應(yīng)用程序的架構(gòu) 39
2.4.3 將所有內(nèi)容封裝到Express項(xiàng)目中 41
2.4.4 最終產(chǎn)品 42
2.5 將開(kāi)發(fā)按階段規(guī)劃 42
2.5.1 快速成型的開(kāi)發(fā)階段 43
2.5.2 構(gòu)建Loc8r的步驟 44
2.6 硬件架構(gòu) 50
2.6.1 開(kāi)發(fā)環(huán)境需要的硬件 50
2.6.2 生產(chǎn)環(huán)境需要的硬件 50
2.7 本章小結(jié) 52
第Ⅱ部分 構(gòu)建Node Web應(yīng)用程序
第3章 創(chuàng)建并設(shè)置MEAN項(xiàng)目 55
3.1 Express、Node和npm簡(jiǎn)介 57
3.1.1 使用package.json定義包 57
3.1.2 package.json文件中的依賴(lài)版本號(hào) 58
3.1.3 使用npm安裝Node依賴(lài) 58
3.2 創(chuàng)建Express項(xiàng)目 60
3.2.1 安裝工具 60
3.2.2 查看安裝狀態(tài) 61
3.2.3 創(chuàng)建項(xiàng)目文件夾 61
3.2.4 配置Express 61
3.2.5 創(chuàng)建并運(yùn)行Express項(xiàng)目 63
3.2.6 重啟應(yīng)用程序 66
3.3 支持MVC的Express 67
3.3.1 MVC總覽 68
3.3.2 改變文件夾結(jié)構(gòu) 68
3.3.3 使用改變位置后的視圖和路由 69
3.3.4 從路由中拆分控制器 71
3.4 導(dǎo)入Bootstrap以快速實(shí)現(xiàn)響應(yīng)式布局 74
3.4.1 下載并添加Bootstrap到應(yīng)用程序中 74
3.4.2 在應(yīng)用程序中使用Bootstrap 75
3.5 使用Heroku 78
3.5.1 設(shè)置Heroku 78
3.5.2 使用Git將網(wǎng)站發(fā)布到線(xiàn)上URL 80
3.6 本章小結(jié) 83
第4章 使用Node和Express構(gòu)建靜態(tài)站點(diǎn) 85
4.1 定義Express路由 86
4.2 構(gòu)建基本控制器 89
4.2.1 設(shè)置控制器 89
4.2.2 測(cè)試控制器和路由 91
4.3 創(chuàng)建視圖 92
4.3.1 使用Bootstrap 93
4.3.2 使用Pug模板和Bootstrap設(shè)置HTML框架 94
4.3.3 構(gòu)建模板 99
4.4 添加其他視圖 103
4.4.1 地點(diǎn)詳情頁(yè) 104
4.4.2 添加評(píng)論頁(yè) 108
4.4.3 添加關(guān)于頁(yè) 109
4.5 將數(shù)據(jù)從視圖中分離,讓視圖更智能 111
4.5.1 將數(shù)據(jù)從視圖移到控制器 113
4.5.2 處理復(fù)雜的重復(fù)數(shù)據(jù)模型 115
4.5.3 操作數(shù)據(jù)和視圖 119
4.5.4 使用include和mixin創(chuàng)建可重用的布局組件 120
4.5.5 查看主頁(yè) 122
4.5.6 更新其他視圖和控制器 124
4.6 本章小結(jié) 125
第5章 使用MongoDB和Mongoose構(gòu)建數(shù)據(jù)模型 127
5.1 使用Mongoose將Express應(yīng)用程序連接到MongoDB 129
5.2 為什么要為數(shù)據(jù)建模 137
5.3 定義簡(jiǎn)單的Mongoose模式 141
5.4 使用MongoDB shell創(chuàng)建MongoDB數(shù)據(jù)庫(kù)并添加數(shù)據(jù) 156
5.5 將數(shù)據(jù)庫(kù)發(fā)布到線(xiàn)上環(huán)境 161
5.6 本章小結(jié) 169
第6章 編寫(xiě)REST API:向應(yīng)用程序公開(kāi)MongoDB數(shù)據(jù)庫(kù) 171
6.1 REST API規(guī)則 172
6.2 在Express中設(shè)置API 177
6.3 GET請(qǐng)求方式:從MongoDB讀取數(shù)據(jù) 184
6.4 Post請(qǐng)求方式:向MongoDB添加數(shù)據(jù) 198
6.5 PUT請(qǐng)求方式:更新MongoDB數(shù)據(jù) 206
6.6 DELETE請(qǐng)求方式:刪除MongoDB數(shù)據(jù) 211
6.7 本章小結(jié) 215
第7 章 消費(fèi)REST API:使用來(lái)自 Express內(nèi)部的API 217
7.1 如何調(diào)用Express API 218
7.2 使用API返回列表數(shù)據(jù):Loc8r主頁(yè) 221
7.3 從API獲取單個(gè)文檔:Details頁(yè)面 232
7.4 通過(guò)API向數(shù)據(jù)庫(kù)添加數(shù)據(jù):添加Loc8r用戶(hù)評(píng)論 242
7.5 通過(guò)數(shù)據(jù)驗(yàn)證保護(hù)數(shù)據(jù)完整性 249
7.6 本章小結(jié) 256
第Ⅲ部分 使用Angular創(chuàng)建動(dòng)態(tài)頁(yè)面
第8章 使用TypeScript開(kāi)發(fā)Angular應(yīng)用程序 259
8.1 創(chuàng)建并運(yùn)行Angular 260
8.2 開(kāi)發(fā) Angular 組件 269
8.3 從API接口中獲取數(shù)據(jù) 284
8.4 在生產(chǎn)環(huán)境中部署Angular應(yīng)用程序 292
8.5 本章小結(jié) 295
第9章 使用Angular開(kāi)發(fā)單頁(yè)面應(yīng)用:基礎(chǔ) 297
9.1 為Angular SPA添加跳轉(zhuǎn)功能 298
9.2 使用多個(gè)嵌套組件構(gòu)建模塊化的應(yīng)用程序 306
9.3 根據(jù)地理位置查找附近地點(diǎn) 316
9.4 安全綁定 HTML片段 324
9.5 挑戰(zhàn) 328
9.6 本章小結(jié) 329
第10章 使用Angular開(kāi)發(fā)單 頁(yè)面應(yīng)用:進(jìn)階 331
10.1 處理更復(fù)雜的視圖和路由參數(shù) 332
10.2 處理表單和提交數(shù)據(jù) 349
10.3 優(yōu)化現(xiàn)有架構(gòu) 362
10.4 使用SPA替換服務(wù)器端應(yīng)用程序 371
10.5 本章小結(jié) 375
第Ⅳ部分 管理身份認(rèn)證和用戶(hù)會(huì)話(huà)
第11章 認(rèn)證用戶(hù)、管理會(huì)話(huà)和 API安全 379
11.1 如何在MEAN技術(shù)棧中實(shí)現(xiàn)身份認(rèn)證功能 380
11.2 為MongoDB創(chuàng)建user模式 384
11.3 使用Passport創(chuàng)建身份認(rèn)證API 391
11.4 保護(hù)相關(guān)的API終端 400
11.5 本章小結(jié) 406
第12章 在Angular應(yīng)用程序中 使用身份認(rèn)證API 407
12.1 創(chuàng)建Angular身份認(rèn)證服務(wù) 407
12.2 創(chuàng)建Register和Login頁(yè)面 414
12.3 在Angular應(yīng)用程序中使用身份認(rèn)證 423
12.4 本章小結(jié) 434
附錄A 安裝MEAN技術(shù)棧 435
附錄B 安裝其他技術(shù)棧 439
附錄C 改造所有視圖 447
附錄D 再次介紹JavaScript 457