-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

MongoDB+Express+Angular+Node.js全棧開發實戰派

( 簡體 字)
作者:柳偉衛類別:1. -> 資料庫 -> MongoDB
   2. -> 程式設計 -> 網路編程 -> AngularJS
   3. -> 程式設計 -> 網路編程 -> Node.js
譯者:
出版社:電子工業出版社MongoDB+Express+Angular+Node.js全棧開發實戰派 3dWoo書號: 52766
詢問書籍請說出此書號!

缺書
NT售價: 545

出版日:5/1/2020
頁數:368
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121379932
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

寫作背景
曾經業界流行使用LAMP架構(Linux、Apache、MySQL和PHP)來快速開發中小網站。LAMP是開放源代碼的,而且使用簡單、價格低廉,因此LAMP架構成為當時開發中小網站的首選,號稱“平民英雄”。
而今隨著Node.js的流行,JavaScript終于在服務器端擁有一席之地。JavaScript成為從前端到后端再到數據庫能夠支持全棧開發的語言。而以MongoDB、Express、Angular和Node.js四種開源技術為核心的MEAN架構,除具備LAMP架構的一切優點外,還能支撐高可用、高并發的大型互聯網應用的開發。MEAN架構勢必也會成為新的“平民英雄”。
市面上獨立講解MongoDB、Express、Angular和Node.js的書較為豐富(包括筆者也出版了《Angular企業級應用開發實戰》《Node.js企業級應用開發實戰》等書),但將這些技術綜合運用的案例和資料比較少。鑒于此,筆者撰寫了這本書加以補充。希望讀者通過學習本書具有全棧開發的能力。
本書涉及的技術及相關版本
請讀者將相關開發環境設置成不低于本書所采用的配置。
? Node.js 12.9.0
? NPM 6.12.2
? Express 4.17.1
? MongoDB Community Server 4.0.10
? MongoDB 3.3.1
? Angular CLI 8.3.0
? NG-ZORRO 8.1.2
? ngx-Markdown 8.1.0
? basic-auth 2.0.1
? NGINX 1.15.8
本書特點
1.可與筆者在線上交流
本書提供以下交流網址,讀者有任何技術的問題都可以向筆者提問。
https://github.com/waylau/mean-book-samples/issues
2.提供了基于技術點的58個實例和1個綜合性實戰項目
本書提供了58個MEAN架構技術點的實例,將理論講解落實到代碼實現上。這些實例具有很高的應用價值和參考價值。在掌握了基礎之后,本書還提供了1個綜合性實戰項目。
3.免費提供書中實例的源文件
本書免費提供書中所有實例的源文件。讀者可以一邊閱讀本書,一邊參照源文件動手練習。這樣不僅可以提高學習的效率,還可以對書中的內容有更加直觀的認識,從而逐漸培養自己的編程能力。
4.覆蓋的知識面廣
本書覆蓋了MongoDB、Express、Angular、NG-ZORRO、ngx-markdown、basic-auth和NGINX等在內的MEAN架構技術點,技術前瞻,案例豐富。不管是編程初學者,還是編程高手,都能從本書中獲益。本書可作為讀者的案頭工具書,隨手翻閱。
5.語言簡潔,閱讀流暢
本書采用結構化的層次,并采用簡短的段落和語句,讓讀者讀來有順水行舟的輕快感。
6.案例的商業性、應用性強
本書提供的案例多數來源于真實的商業項目,具有很高的參考價值。有些代碼甚至可以移植到自己的項目中直接使用,使從“學”到“用”這個過程變得更加直接。
內容簡介:

以MongoDB、Express、Angular和Node.js四種技術為核心的技術棧(MEAN架構),被廣泛應用于全棧Web開發。本書最終帶領讀者從零開始實現一個完整的、企業級的、前后端分離的應用——“新聞頭條”,使讀者具備用MEAN架構完整開發企業級應用的能力。本書分為6篇。第1篇介紹MEAN架構的基礎概念,使讀者對MEAN架構有一個初步的印象。第2篇介紹全棧開發平臺Node.js的常用知識點,包括模塊、測試、緩沖區、事件處理、文件處理、HTTP編程等。第3篇介紹Web服務器Express的常用知識點。第4篇介紹NoSQL數據庫MongoDB的常用知識點,以及其在Node.js中的應用。第5篇介紹前端應用開發平臺Angular的常用知識點,包括組件、模板、數據綁定、指令、服務、依賴注入、路由、響應式編程、HTTP客戶端等。第6篇帶領讀者實現一個完整的應用——“新聞頭條”。第2∼5篇介紹了58個實例,將理論講解最終落實到代碼實現上。隨著圖書內容的推進,這些實例不斷趨近于工程項目,具有很高的應用價值和參考價值。本書由淺入深、層層推進、結構清晰、實例豐富、通俗易懂、實用性強,適合MEAN架構的初學者和進階讀者作為自學用書,也適合培訓學校作為培訓教材,還適合大、中專院校的相關專業作為教學參考書。
目錄:

====第1篇 初識MEAN
-
第1章 MEAN架構概述 2
1.1 MEAN架構核心技術棧的組成 2
| 1.1.1 MongoDB 2
| 1.1.2 Express 3
| 1.1.3 Angular 3
| 1.1.4 Node.js 3
1.2 MEAN架構周邊技術棧的組成 4
| 1.2.1 NG-ZORRO 4
| 1.2.2 ngx-Markdown 4
| 1.2.3 NGINX 5
| 1.2.4 basic-auth 5
1.3 MEAN架構的優勢 5
1.4 開發工具的選擇 8

-
====第2篇 Node.js——全棧開發平臺

-
第2章 Node.js基礎 10
2.1 Node.js簡介 10
| 2.1.1 Node.js簡史 10
| 2.1.2 為什么叫Node.js 12
2.2 Node.js的特點 13
2.3 安裝Node.js 17
| 2.3.1 安裝Node.js和NPM 17
| 2.3.2 Node.js與NPM的關系 17
| 2.3.3 安裝NPM鏡像 18
2.4 第1個Node.js應用 18
| 2.4.1 【實例1】創建Node.js應用 18
| 2.4.2 【實例2】運行Node.js應用 18
| 2.4.3 總結 19
-
第3章 Node.js模塊——大型項目管理之道 20
3.1 理解模塊化機制 20
| 3.1.1 理解CommonJS規范 20
| 3.1.2 理解ES 6模塊 22
| 3.1.3 CommonJS和ES 6模塊的異同點 24
| 3.1.4 Node.js的模塊實現 25
3.2 使用NPM管理模塊 26
| 3.2.1 用npm命令安裝模塊 27
| 3.2.2 全局安裝與本地安裝 27
| 3.2.3 查看安裝信息 28
| 3.2.4 卸載模塊 28
| 3.2.5 更新模塊 29
| 3.2.6 搜索模塊 29
| 3.2.7 創建模塊 29
3.3 Node.js的核心模塊 29
-
第4章 Node.js測試 31
4.1 嚴格模式和遺留模式 31
4.2 【實例3】斷言的使用 32
4.3 了解AssertionError 33
4.4 【實例4】使用deepStrictEqual 34
-
第5章 Node.js緩沖區——高性能I/O處理的秘訣 38
5.1 了解Buffer類 38
| 5.1.1 TypedArray對象 39
| 5.1.2 Buffer類 39
5.2 創建緩沖區 40
| 5.2.1 初始化緩沖區的API 41
| 5.2.2 理解數據的安全性 41
| 5.2.3 啟用零填充 42
| 5.2.4 指定字符編碼 43
5.3 切分緩沖區 43
5.4 鏈接緩沖區 45
5.5 比較緩沖區 46
5.6 緩沖區編/解碼 46
| 5.6.1 解碼器和編碼器 47
| 5.6.2 緩沖區解碼 47
| 5.6.3 緩沖區編碼 48
-
第6章 Node.js事件處理 50
6.1 理解事件和回調 50
| 6.1.1 事件循環 51
| 6.1.2 事件驅動 51
6.2 事件發射器 52
| 6.2.1 將參數傳給監聽器 52
| 6.2.2 異步與同步 53
| 6.2.3 僅處理事件一次 53
6.3 事件類型 54
| 6.3.1 事件類型的定義 54
| 6.3.2 內置的事件類型 55
| 6.3.3 error事件 55
6.4 事件的操作 57
| 6.4.1 【實例5】設置最大監聽器 58
| 6.4.2 【實例6】獲取已注冊事件的名稱 58
| 6.4.3 【實例7】獲取監聽器數組的副本 59
| 6.4.4 【實例8】將事件監聽器添加到監聽器數組的開頭 59
| 6.4.5 【實例9】移除監聽器 60
-
第7章 Node.js文件處理 63
7.1 了解fs模塊 63
| 7.1.1 同步與異步操作文件 63
| 7.1.2 文件描述符 65
7.2 處理文件路徑 66
| 7.2.1 字符串形式的路徑 66
| 7.2.2 Buffer形式的路徑 67
| 7.2.3 URL對象的路徑 68
7.3 打開文件 69
| 7.3.1 文件系統標志 69
| 7.3.2 【實例10】打開文件的例子 71
7.4 讀取文件 72
| 7.4.1 【實例11】用fs.read()方法讀取文件 72
| 7.4.2 【實例12】用fs.readdir()方法讀取文件 73
| 7.4.3 【實例13】用fs.readFile()方法讀取文件 74
7.5 寫入文件 75
| 7.5.1 【實例14】將Buffer寫入文件 75
| 7.5.2 【實例15】將字符串寫入文件 77
| 7.5.3 【實例16】將數據寫入文件 78
-
第8章 Node.js HTTP編程 80
8.1 創建HTTP服務器 80
| 8.1.1 【實例17】用http.Server創建服務器 80
| 8.1.2 理解http.Server事件的用法 81
8.2 處理HTTP的常用操作 83
8.3 請求對象和響應對象 84
| 8.3.1 理解http.ClientRequest類 84
| 8.3.2 理解http.ServerResponse類 88
8.4 REST概述 91
| 8.4.1 REST的定義 92
| 8.4.2 REST的設計原則 92
8.5 成熟度模型 94
| 8.5.1 第0級:用HTTP作為傳輸方式 94
| 8.5.2 第1級:引入了資源的概念 96
| 8.5.3 第2級:根據語義使用HTTP動詞 97
| 8.5.4 第3級:使用HATEOAS 98
8.6 【實例18】構建REST服務的例子 100
| 8.6.1 新增用戶 101
| 8.6.2 修改用戶 102
| 8.6.3 刪除用戶 103
| 8.6.4 響應請求 104
| 8.6.5 運行應用 105

-
====第3篇 Express——Web服務器

-
第9章 Express基礎 110
9.1 安裝Express 110
9.2 【實例19】編寫“Hello World”應用 112
9.3 【實例20】運行“Hello World”應用 112
-
第10章 Express路由——頁面的導航員 114
10.1 路由方法 114
10.2 路由路徑 115
| 10.2.1 【實例21】基于字符串的路由路徑 116
| 10.2.2 【實例22】基于字符串模式的路由路徑 116
| 10.2.3 【實例23】基于正則表達式的路由路徑 117
10.3 路由參數 117
10.4 路由處理器 118
| 10.4.1 【實例24】單個回調函數 118
| 10.4.2 【實例25】多個回調函數 118
| 10.4.3 【實例26】一組回調函數 118
| 10.4.4 【實例27】獨立函數和函數數組的組合 119
10.5 響應方法 119
10.6 【實例28】基于Express構建REST API 120
10.7 測試Express的REST API 122
| 10.7.1 測試用于創建用戶的API 122
| 10.7.2 測試用于刪除用戶的API 122
| 10.7.3 測試用于修改用戶的API 123
| 10.7.4 測試用于查詢用戶的API 124
-
第11章 Express錯誤處理器 125
11.1 捕獲錯誤 125
11.2 默認錯誤處理器 127
11.3 自定義錯誤處理器 128

-
====第4篇 MongoDB篇——NoSQL數據庫

-
第12章 MongoDB基礎 132
12.1 MongoDB簡介 132
12.2 安裝MongoDB 133
12.3 啟動MongoDB服務 134
12.4 鏈接MongoDB服務器 135
-
第13章 MongoDB的常用操作 136
13.1 顯示已有的數據庫 136
13.2 創建、使用數據庫 136
13.3 插入文檔 137
| 13.3.1 【實例29】插入單個文檔 137
| 13.3.2 【實例30】插入多個文檔 138
13.4 查詢文檔 139
| 13.4.1 嵌套文檔查詢 139
| 13.4.2 嵌套字段查詢 139
| 13.4.3 使用查詢運算符 140
| 13.4.4 多條件查詢 140
13.5 修改文檔 140
| 13.5.1 修改單個文檔 141
| 13.5.2 修改多個文檔 141
| 13.5.3 替換單個文檔 142
13.6 刪除文檔 142
| 13.6.1 刪除單個文檔 143
| 13.6.2 刪除多個文檔 143
-
第14章 【實例31】使用Node.js操作MongoDB 144
14.1 安裝mongodb模塊 144
14.2 訪問MongoDB 145
14.3 運行應用 146
-
第15章 mongodb模塊的綜合應用 148
15.1 【實例32】建立連接 148
15.2 【實例33】插入文檔 149
15.3 【實例34】查找文檔 150
15.4 修改文檔 152
| 15.4.1 【實例35】修改單個文檔 153
| 15.4.2 【實例36】修改多個文檔 157
15.5 刪除文檔 158
| 15.5.1 【實例37】刪除單個文檔 158
| 15.5.2 【實例38】刪除多個文檔 159

-
====第5篇 Angular——前端應用開發平臺

-
第16章 Angular基礎 162
16.1 常見的UI編程框架 162
| 16.1.1 Angular與jQuery的不同 162
| 16.1.2 Angular與React、Vue.js優勢對比 164
| 16.1.3 Angular、React、Vue.js三者怎么選 165
16.2 Angular的安裝 165
16.3 Angular CLI的常用操作 166
| 16.3.1 獲取幫助 166
| 16.3.2 創建應用 167
| 16.3.3 創建組件 167
| 16.3.4 創建服務 167
| 16.3.5 啟動應用 167
| 16.3.6 添加依賴 167
| 16.3.7 升級依賴 167
16.3.8 自動化測試 167
| 16.3.9 下載依賴 168
| 16.3.10 編譯 168
16.4 Angular架構概覽 168
| 16.4.1 模塊 169
| 16.4.2 組件 170
| 16.4.3 模板、指令和數據綁定 170
| 16.4.4 服務與依賴注入 170
| 16.4.5 路由 170
16.5 【實例39】創建第1個Angular應用 171
| 16.5.1 使用Angular CLI初始化應用 171
| 16.5.2 運行Angular應用 173
| 16.5.3 了解src文件夾 174
| 16.5.4 了解根目錄 175
-
第17章 Angular模塊——大型前端應用管理之道 178
17.1 模塊概述 178
| 17.1.1 什么是模塊化 178
| 17.1.2 認識基本模塊 179
| 17.1.3 認識特性模塊 180
17.2 引導啟動 180
| 17.2.1 了解declarations數組 181
| 17.2.2 了解imports數組 182
| 17.2.3 了解providers數組 182
| 17.2.4 了解bootstrap數組 182
17.3 常用模塊 182
| 17.3.1 常用模塊 182
| 17.3.2 BrowserModule和CommonModule 183
17.4 特性模塊 183
| 17.4.1 領域特性模塊 183
| 17.4.2 帶路由的特性模塊 184
| 17.4.3 路由模塊 184
| 17.4.4 服務特性模塊 184
| 17.4.5 可視部件特性模塊 185
17.5 入口組件 185
| 17.5.1 引導用的入口組件 185
| 17.5.2 路由用的入口組件 186
| 17.5.3 entryComponents 186
| 17.5.4 編譯優化 186
-
第18章 Angular組件——獨立的開發單元 187
18.1 數據展示 187
| 18.1.1 【實例40】數據展示的例子 187
| 18.1.2 使用插值表達式顯示組件屬性 189
| 18.1.3 組件關聯模板的兩種方式 189
| 18.1.4 在模板中使用指令 190
18.2 生命周期 190
| 18.2.1 生命周期鉤子 190
| 18.2.2 【實例41】生命周期鉤子的例子 191
| 18.2.3 生命周期鉤子的順序 193
| 18.2.4 了解OnInit()鉤子 194
| 18.2.5 了解OnDestroy()鉤子 195
| 18.2.6 了解OnChanges()鉤子 196
| 18.2.7 了解DoCheck()鉤子 196
| 18.2.8 了解AfterView鉤子 197
| 18.2.9 了解AfterContent鉤子 197
18.3 組件的交互方式 197
| 18.3.1 【實例42】通過@Input把數據從父組件傳到子組件 197
| 18.3.2 【實例43】通過set()方法截聽輸入屬性值的變化 199
| 18.3.3 【實例44】通過ngOnChanges()方法截聽輸入屬性值的變化 200
| 18.3.4 【實例45】用父組件監聽子組件的事件 202
| 18.3.5 【實例46】父組件與子組件通過本地變量進行交互 204
| 18.3.6 【實例47】父組件調用@ViewChild()方法獲取子組件的值 206
| 18.3.7 【實例48】父組件和子組件通過服務來通信 207
18.4 樣式 210
| 18.4.1 【實例49】使用組件樣式的例子 211
| 18.4.2 樣式的作用域 211
| 18.4.3 特殊的樣式選擇器 213
| 18.4.4 把樣式加載進組件的幾種方式 213
-
第19章 Angular模板和數據綁定 216
19.1 模板表達式 216
| 19.1.1 模板表達式上下文 217
| 19.1.2 編寫模板表達式的最佳實踐 217
| 19.1.3 管道操作符 218
| 19.1.4 安全導航操作符和空屬性路徑 218
| 19.1.5 非空斷言操作符 218
19.2 模板語句 219
19.3 數據綁定 220
| 19.3.1 從數據源到視圖 220
| 19.3.2 從視圖到數據源 220
| 19.3.3 雙向綁定 221
19.4 屬性綁定 221
| 19.4.1 單向輸入 221
| 19.4.2 綁定目標 221
| 19.4.3 一次性字符串初始化 221
| 19.4.4 選擇“插值表達式”還是“屬性綁定” 222
| 19.5 事件綁定 222
| 19.5.1 目標事件 222
| 19.5.2 $event和事件處理語句 222
| 19.5.3 使用EventEmitter類自定義事件 223
-
第20章 Angular指令——組件行為改變器 225
20.1 指令類型 225
20.2 屬性型指令 225
| 20.2.1 了解NgClass、NgStyle、NgModel指令 226
| 20.2.2 【實例50】創建并使用屬性型指令 227
| 20.2.3 【實例51】響應用戶引發的事件 228
| 20.2.4 【實例52】使用@Input數據綁定向指令傳遞值 229
| 20.2.5 【實例53】綁定多個屬性 231
20.3 結構型指令 232
| 20.3.1 了解NgIf指令 232
| 20.3.2 了解NgSwitch指令 232
| 20.3.3 了解NgFor指令 233
| 20.3.4 了解<ng-template>標簽 234
| 20.3.5 了解<ng-container>標簽 234
| 20.3.6 【實例54】自定義結構型指令 235
-
第21章 Angular服務與依賴注入 238
21.1 初識依賴注入 238
21.2 在Angular中實現依賴注入 239
| 21.2.1 觀察初始的應用 240
| 21.2.2 創建服務 242
| 21.2.3 理解注入器 242
| 21.2.4 理解服務提供商 245
| 21.2.5 注入服務 249
| 21.2.6 單例服務 250
| 21.2.7 組件的子注入器 250
| 21.2.8 測試組件 250
| 21.2.9 服務依賴服務 251
| 21.2.10 依賴注入令牌 252
| 21.2.11 可選依賴 252
21.3 多級依賴注入 252
| 21.3.1 注入器樹 252
| 21.3.2 注入器冒泡 253
| 21.3.3 在不同層級提供同一個服務 253
| 21.3.4 組件注入器 253
-
第22章 Angular路由 254
22.1 配置路由 254
| 22.1.1 【實例55】配置路由器 254
| 22.1.2 輸出導航生命周期中的事件 256
| 22.1.3 【實例56】設置路由出口 256
22.2 理解路由器鏈接 257
| 22.2.1 路由器狀態 257
| 22.2.2 激活的路由 257
22.3 路由事件 258
22.4 重定向URL 258
22.5 【實例57】一個路由器的例子 259
| 22.5.1 創建應用及組件 259
| 22.5.2 修改組件的模板 260
| 22.5.3 導入并設置路由器 260
| 22.5.4 添加路由出口 261
| 22.5.5 美化界面 262
| 22.5.6 定義通配符路由 264
-
第23章 Angular響應式編程 266
23.1 了解Observable機制 266
| 23.1.1 Observable的基本概念 266
| 23.1.2 定義觀察者 267
| 23.1.3 執行訂閱 268
| 23.1.4 創建Observable對象 269
| 23.1.5 實現多播 270
| 23.1.6 處理錯誤 273
23.2 了解RxJS技術 273
| 23.2.1 創建Observable對象的函數 274
| 23.2.2 了解操作符 275
| 23.2.3 處理錯誤 276
23.3 了解Angular中的Observable 277
| 23.3.1 在EventEmitter類上的應用 278
| 23.3.2 在調用HTTP方法時的應用 278
| 23.3.3 在AsyncPipe管道上的應用 279
| 23.3.4 在Router路由器上的應用 279
| 23.3.5 在響應式表單上的應用 280
-
第24章 Angular HTTP客戶端 282
24.1 初識HttpClient 282
24.2 認識網絡資源 282
24.3 【實例58】獲取天氣數據 284
| 24.3.1 導入HttpClient 284
| 24.3.2 編寫空氣質量組件 285
| 24.3.3 編寫空氣質量服務 285
| 24.3.4 將服務注入組件 286
| 24.3.5 返回帶類型檢查的響應 288
| 24.3.6 讀取完整的響應體 288
24.4 錯誤處理 290
| 24.4.1 獲取錯誤詳情 291
| 24.4.2 重試 292

-
====第6篇 綜合應用——構建一個完整的互聯網應用

-
第25章 總體設計 294
25.1 應用概述 294
| 25.1.1 mean-news的核心功能 295
| 25.1.2 初始化數據庫 295
25.2 模型設計 295
| 25.2.1 用戶模型設計 295
| 25.2.2 新聞模型設計 296
25.3 接口設計 296
25.4 權限管理 296
-
第26章 客戶端應用 298
26.1 UI設計 298
| 26.1.1 首頁UI設計 298
| 26.1.2 新聞詳情頁UI設計 299
26.2 實現UI原型 299
| 26.2.1 初始化mean-news-ui 300
| 26.2.2 添加NG-ZORRO 300
| 26.2.3 創建新聞列表組件 303
| 26.2.4 設計新聞列表原型 304
| 26.2.5 設計新聞詳情頁原型 306
26.3 實現路由器 309
| 26.3.1 創建路由 309
| 26.3.2 添加路由出口 309
| 26.3.3 修改新聞列表組件 309
| 26.3.4 給“返回”按鈕添加事件 310
| 26.3.5 運行應用 311
-
第27章 服務器端應用 312
27.1 初始化服務器端應用 312
| 27.1.1 創建應用目錄 312
| 27.1.2 初始化應用結構 312
| 27.1.3 在應用中安裝Express 313
| 27.1.4 編寫“Hello World”應用 314
| 27.1.5 運行“Hello World”應用 314
27.2 初步實現用戶登錄認證功能 314
| 27.2.1 創建服務器端管理組件 314
| 27.2.2 添加組件到路由器 315
| 27.2.3 使用HttpClient 315
| 27.2.4 訪問服務器端接口 316
| 27.2.5 給服務器端接口設置安全認證 318
27.3 實現新聞編輯器 320
| 27.3.1 集成ngx-Markdown插件 320
| 27.3.2 導入MarkdownModule模塊 321
| 27.3.3 編寫編輯器界面 321
| 27.3.4 在服務器端新增創建新聞的接口 325
| 27.3.5 運行應用 327
27.4 實現新聞列表展示 328
| 27.4.1 在服務器端實現新聞列表查詢的接口 328
| 27.4.2 在客戶端實現客戶端訪問新聞列表的REST接口 329
| 27.4.3 運行應用 330
27.5 實現新聞詳情展示 331
| 27.5.1 在服務器端實現新聞詳情查詢的接口 331
| 27.5.2 在客戶端實現調用新聞詳情頁的REST接口 333
| 27.5.3 設置路由 334
| 27.5.4 運行應用 334
27.6 實現認證信息的存儲及讀取 335
| 27.6.1 實現認證信息的存儲 335
| 27.6.2 實現認證信息的讀取 336
| 27.6.3 改造認證方法 336
| 27.6.4 改造對外的接口 337
27.7 總結 339
-
第28章 用NGINX實現高可用 340
28.1 NGINX概述 340
| 28.1.1 NGINX特性 340
| 28.1.2 安裝、運行NGINX 340
| 28.1.3 驗證安裝 343
| 28.1.4 常用命令 344
28.2 部署客戶端應用 345
| 28.2.1 編譯客戶端應用 345
| 28.2.2 部署客戶端應用的編譯文件 346
| 28.2.3 配置NGINX 346
28.3 實現負載均衡及高可用 347
| 28.3.1 配置負載均衡 348
| 28.3.2 負載均衡常用算法 349
| 28.3.3 實現服務器端服務器的高可用 350
| 28.3.4 運行應用 351
參考文獻 353
序: