注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)操作系統(tǒng)循序漸進(jìn)Node.js企業(yè)級開發(fā)實踐

循序漸進(jìn)Node.js企業(yè)級開發(fā)實踐

循序漸進(jìn)Node.js企業(yè)級開發(fā)實踐

定 價:¥89.00

作 者: 柳偉衛(wèi)
出版社: 清華大學(xué)出版社
叢編項:
標(biāo) 簽: 暫缺

ISBN: 9787302675556 出版時間: 2024-12-01 包裝: 平裝
開本: 16開 頁數(shù): 字?jǐn)?shù):  

內(nèi)容簡介

  《循序漸進(jìn)Node.js企業(yè)級開發(fā)實踐》結(jié)合作者多年一線開發(fā)實踐,系統(tǒng)地介紹了Node.js技術(shù)棧及其在企業(yè)級開發(fā)中的應(yīng)用。全書共分5部分,第1部分基礎(chǔ)知識(第1~3章),介紹Node.js的基礎(chǔ)知識,包括模塊化、測試等;第2部分核心編程(第4~9章),介紹Node.js的緩沖區(qū)、事件、定時、文件、進(jìn)程、流等方面的處理;第3部分網(wǎng)絡(luò)編程(第10~16章),介紹Node.js的TCP、UDP、HTTP、WebSocket、TSL/SSL、常用Web中間件、Vue.js與響應(yīng)式編程等方面的內(nèi)容;第4部分?jǐn)?shù)據(jù)存儲(第17~19章),介紹Node.js關(guān)于MySQL、MongoDB、Redis等數(shù)據(jù)存儲的操作;第5部分綜合應(yīng)用(第20章),介紹Node.js實現(xiàn)即時聊天應(yīng)用的完整過程。除了Node.js技術(shù)外,本書還講述了Express、Socket.IO、Vue.js、MySQL、MongoDB、Redis等熱門技術(shù)的應(yīng)用。本節(jié)還精心設(shè)計了26個實戰(zhàn)案例和43個上機練習(xí),所有練習(xí)都提供了操作步驟,便于讀者實操演練,快速上手?!堆驖u進(jìn)Node.js企業(yè)級開發(fā)實踐》技術(shù)新穎,實例豐富,理論講解與代碼實現(xiàn)相結(jié)合,既適合作為Node.js的初學(xué)者和進(jìn)階讀者的自學(xué)用書,也適合作為培訓(xùn)機構(gòu)或高校相關(guān)專業(yè)的教學(xué)用書。

作者簡介

  柳偉衛(wèi),網(wǎng)名老衛(wèi)、waylau,在IT公司擔(dān)任過項目經(jīng)理、架構(gòu)師、高級技術(shù)顧問等職位,擁有十余年開發(fā)經(jīng)驗,具有豐富的軟件開發(fā)管理及系統(tǒng)架構(gòu)經(jīng)驗。主導(dǎo)過多個省、國家級大型分布式系統(tǒng)的設(shè)計與研發(fā),參與過面向全球的供應(yīng)鏈系統(tǒng)服務(wù)化改造。在實際工作中,積累了大量的分布式系統(tǒng)、微 服務(wù)架構(gòu)以及性能調(diào)優(yōu)經(jīng)驗。業(yè)余時間創(chuàng)建了 waylau.com 網(wǎng)站,用于分享個人技術(shù)心得。喜歡開源,長期躍于各大開源社區(qū),編著了《跟老衛(wèi)學(xué)HarmonyOS開發(fā)》《Netty 實戰(zhàn)(精髓)》等近30余本開源技術(shù)教程(見 https://waylau.com/books/),廣受網(wǎng)友好評,是 CSDN、 開源中國、阿里云開發(fā)者、華為開發(fā)者等技術(shù)社區(qū)專家,慕課網(wǎng)、華為開發(fā)者聯(lián)盟社區(qū)認(rèn)證講師。已出版包括《HarmonyOS應(yīng)用開發(fā)入門》《分布式系統(tǒng)常用技術(shù)及案例分析》《Java核心編程》《輕量級Java EE企業(yè)應(yīng)用開發(fā)實戰(zhàn)》《Node.js Express MongoDB Vue.js全棧開發(fā)實戰(zhàn)》《循序漸進(jìn)Spark大數(shù)據(jù)應(yīng)用實踐》等在內(nèi)的幾十本專著。

圖書目錄

第 1 章  走進(jìn)Node.js的世界 1
1.1  認(rèn)識Node.js 1
1.1.1  Node.js簡介 1
1.1.2  Node.js的特點 2
1.2  安裝Node.js及IDE 6
1.2.1  安裝Node.js和npm 6
1.2.2  Node.js與npm的關(guān)系 6
1.2.3  安裝npm鏡像 6
1.2.4  選擇合適的IDE 7
1.3  實戰(zhàn):第一個Node.js應(yīng)用 7
1.3.1  創(chuàng)建Node.js應(yīng)用 7
1.3.2  運行Node.js應(yīng)用 7
1.3.3  小結(jié) 8
1.4  實戰(zhàn):在Node.js應(yīng)用中使用TypeScript 8
1.4.1  創(chuàng)建TypeScript版本的Node.js應(yīng)用 8
1.4.2  運行TypeScript應(yīng)用 9
1.5  上機演練 9
1.6  本章小結(jié) 11
第 2 章  模塊化 12
2.1  理解模塊化機制 12
2.1.1  理解CommonJS規(guī)范 12
2.1.2  理解ECMAScript模塊 14
2.1.3  CommonJS和ECMAScript模塊的異同點 16
2.1.4  Node.js的模塊實現(xiàn) 16
2.2  使用npm管理模塊 18
2.2.1  使用npm命令安裝模塊 18
2.2.2  全局安裝與本地安裝 18
2.2.3  查看安裝信息 19
2.2.4  卸載模塊 19
2.2.5  更新模塊 19
2.2.6  搜索模塊 19
2.2.7  創(chuàng)建模塊 20
2.3  核心模塊 20
2.3.1  核心模塊介紹 20
2.3.2  實戰(zhàn):核心模塊fs的簡單示例 20
2.4  上機演練 21
2.5  本章小結(jié) 22
第 3 章  測試 23
3.1  使用斷言 23
3.1.1  什么是斷言測試 23
3.1.2  嚴(yán)格模式和遺留模式 24
3.1.3  實戰(zhàn):斷言的使用 25
3.1.4  了解AssertionError 27
3.1.5  實戰(zhàn):deepStrictEqual示例 27
3.2  第三方測試工具 29
3.2.1  Nodeunit 30
3.2.2  Mocha 31
3.2.3  Vows 31
3.3  上機演練 33
練習(xí)一:使用Node.js的斷言功能進(jìn)行簡單的單元測試 33
練習(xí)二:使用.js的AssertionError 34
練習(xí)三:使用Node.js的第三方測試工具 34
3.4  本章小結(jié) 35
第 4 章  緩沖區(qū) 36
4.1  了解緩沖區(qū) 36
4.1.1  了解TypedArray 36
4.1.2  Buffer類 37
4.2  創(chuàng)建緩沖區(qū) 38
4.2.1  初始化緩沖區(qū)的API 39
4.2.2  理解數(shù)據(jù)的安全性 39
4.2.3  啟用零填充 40
4.2.4  指定字符編碼 40
4.3  切分緩沖區(qū) 41
4.4  連接緩沖區(qū) 42
4.5  比較緩沖區(qū) 43
4.6  緩沖區(qū)編解碼 44
4.6.1  解碼器和編碼器 44
4.6.2  緩沖區(qū)解碼 44
4.6.3  緩沖區(qū)編碼 45
4.7  上機演練 46
練習(xí)一:創(chuàng)建緩沖區(qū) 46
練習(xí)二:切分緩沖區(qū) 46
練習(xí)三:連接緩沖區(qū) 47
練習(xí)四:緩沖區(qū)編解碼 47
4.8  本章小結(jié) 48
第 5 章  事件處理 49
5.1  理解事件和回調(diào) 49
5.1.1  事件循環(huán) 50
5.1.2  事件驅(qū)動 50
5.2  事件發(fā)射器 51
5.2.1  將參數(shù)和this傳遞給監(jiān)聽器 51
5.2.2  異步與同步 52
5.2.3  僅處理事件一次 52
5.3  事件類型 53
5.3.1  事件類型的定義 53
5.3.2  內(nèi)置的事件類型 54
5.3.3  error事件 54
5.4  事件的操作 56
5.4.1  實戰(zhàn):設(shè)置最大監(jiān)聽器 56
5.4.2  實戰(zhàn):獲取已注冊的事件的名稱 56
5.4.3  實戰(zhàn):獲取監(jiān)聽器數(shù)組的副本 57
5.4.4  實戰(zhàn):將事件監(jiān)聽器添加到監(jiān)聽器數(shù)組的開頭 57
5.4.5  實戰(zhàn):移除監(jiān)聽器 58
5.5  上機演練 60
5.6  本章小結(jié) 61
第 6 章  定時處理 62
6.1  定時處理常用類 62
6.1.1  Immediate 62
6.1.2  Timeout 63
6.2  定時調(diào)度 64
6.2.1  setImmediate 64
6.2.2  setInterval 65
6.2.3  setTimeout 65
6.2.4  setInterval和setTimeout的異同 66
6.3  取消定時 67
6.4  上機演練 69
6.5  本章小結(jié) 70
第 7 章  文件處理 71
7.1  了解node:fs模塊 71
7.1.1  同步與異步操作文件 71
7.1.2  文件描述符 73
7.2  處理文件路徑 74
7.2.1  字符串形式的路徑 74
7.2.2  Buffer形式的路徑 74
7.2.3  URL對象的路徑 75
7.3  打開文件 76
7.3.1  文件系統(tǒng)標(biāo)志 77
7.3.2  實戰(zhàn):打開當(dāng)前目錄下的文件 78
7.4  實戰(zhàn):讀取文件 79
7.4.1  fs.read 79
7.4.2  fs.readdir 80
7.4.3  fs.readFile 80
7.5  實戰(zhàn):寫入文件 82
7.5.1  將buffer寫入文件 82
7.5.2  將字符串寫入文件 83
7.5.3  將數(shù)據(jù)寫入文件 84
7.6  上機演練 85
7.7  本章小結(jié) 86
第 8 章  進(jìn)程 87
8.1  執(zhí)行外部命令 87
8.1.1  spawn() 87
8.1.2  exec() 89
8.1.3  execFile() 90
8.2  子進(jìn)程ChildProcess 92
8.2.1  生成子進(jìn)程 92
8.2.2  進(jìn)程間通信 92
8.3  終止進(jìn)程 94
8.4  上機演練 94
練習(xí)一:執(zhí)行外部命令 94
練習(xí)二:進(jìn)程間通信 95
練習(xí)三:終止進(jìn)程 95
8.5  本章小結(jié) 96
第 9 章  流 97
9.1  流的概述 97
9.1.1  流的類型 97
9.1.2  對象模式 97
9.1.3  流中的緩沖區(qū) 98
9.2  可讀流 98
9.2.1  stream.Readable類事件 99
9.2.2  stream.Readable類方法 101
9.2.3  異步迭代器 104
9.2.4  兩種讀取模式 105
9.3  可寫流 105
9.3.1  stream.Writable類事件 106
9.3.2  stream.Writable類方法 107
9.4  雙工流與轉(zhuǎn)換流 110
9.4.1  實現(xiàn)雙工流 110
9.4.2  實戰(zhàn):雙工流的例子 110
9.4.3  對象模式的雙工流 111
9.4.4  實現(xiàn)轉(zhuǎn)換流 112
9.5  上機演練 112
練習(xí)一:使用可讀流讀取文件 112
練習(xí)二:使用可寫流寫入文件 113
練習(xí)三:實現(xiàn)一個簡單的雙工流 113
9.6  本章小結(jié) 114
第 10 章  TCP 115
10.1  創(chuàng)建TCP服務(wù)器 115
10.1.1  了解TCP 115
10.1.2  了解socket 116
10.1.3  node:net模塊 117
10.1.4  實戰(zhàn):創(chuàng)建TCP服務(wù)器 117
10.2  監(jiān)聽連接 118
10.2.1  server.listen(handle[, backlog][, callback]) 119
10.2.2  server.listen(options[, callback]) 119
10.3  發(fā)送和接收數(shù)據(jù) 120
10.3.1  創(chuàng)建socket對象 120
10.3.2  創(chuàng)建socket對象來發(fā)送和接收數(shù)據(jù) 121
10.3.3  實戰(zhàn):TCP服務(wù)器的例子 121
10.4  關(guān)閉TCP服務(wù)器 122
10.4.1  socket.end() 123
10.4.2  server.close() 124
10.5  上機演練 125
練習(xí)一:創(chuàng)建TCP服務(wù)器 125
練習(xí)二:發(fā)送和接收數(shù)據(jù) 126
練習(xí)三:關(guān)閉TCP服務(wù)器 127
10.6  本章小結(jié) 128
第 11 章  UDP 129
11.1  創(chuàng)建UDP服務(wù)器 129
11.1.1  了解UDP 129
11.1.2  TCP與UDP的區(qū)別 130
11.1.3  實戰(zhàn):創(chuàng)建UDP服務(wù)器 130
11.2  監(jiān)聽連接 131
11.3  發(fā)送和接收數(shù)據(jù) 131
11.3.1  message事件 131
11.3.2  socket.send()方法 132
11.4  關(guān)閉UDP服務(wù)器 133
11.5  實戰(zhàn):UDP服務(wù)器通信 134
11.5.1  UDP服務(wù)器 134
11.5.2  UDP客戶端 135
11.5.3  運行應(yīng)用 135
11.6  上機演練 136
練習(xí)一:創(chuàng)建UDP服務(wù)器 136
練習(xí)二:發(fā)送和接收數(shù)據(jù) 137
練習(xí)三:關(guān)閉UDP服務(wù)器 137
11.7  本章小結(jié) 138
第 12 章  HTTP 139
12.1  創(chuàng)建HTTP服務(wù)器 139
12.1.1  使用http.Server類創(chuàng)建服務(wù)器 139
12.1.2  http.Server事件 140
12.2  處理HTTP的常用操作 142
12.3  請求對象和響應(yīng)對象 142
12.3.1  http.ClientRequest類 142
12.3.2  http.ServerResponse類 146
12.4  REST概述 149
12.4.1  REST定義 149
12.4.2  REST設(shè)計原則 150
12.5  成熟度模型 151
12.5.1  第0級:使用HTTP作為傳輸方式 151
12.5.2  第1級:引入資源的概念 153
12.5.3  第2級:根據(jù)語義使用HTTP動詞 153
12.5.4  第3級:使用HATEOAS 155
12.6  實戰(zhàn):構(gòu)建REST服務(wù) 157
12.6.1  新增用戶 157
12.6.2  修改用戶 158
12.6.3  刪除用戶 159
12.6.4  響應(yīng)請求 160
12.6.5  運行應(yīng)用 161
12.7  上機演練 163
練習(xí)一:創(chuàng)建一個簡單的HTTP服務(wù)器 163
練習(xí)二:實現(xiàn)一個簡單的RESTful API服務(wù) 164
12.8  本章小結(jié) 165
第 13 章  WebSocket 166
13.1  創(chuàng)建WebSocket服務(wù)器 166
13.1.1  常見的Web推送技術(shù) 166
13.1.2  使用ws創(chuàng)建WebSokcet服務(wù)器 168
13.2  監(jiān)聽連接 168
13.3  發(fā)送和接收數(shù)據(jù) 169
13.3.1  發(fā)送數(shù)據(jù) 169
13.3.2  發(fā)送ping和pong 170
13.3.3  接收數(shù)據(jù) 170
13.4  準(zhǔn)備的狀態(tài) 171
13.5  關(guān)閉WebSocket服務(wù)器 171
13.6  實戰(zhàn):WebSocket聊天服務(wù)器 171
13.6.1  聊天服務(wù)器的需求 172
13.6.2  服務(wù)器的實現(xiàn) 172
13.6.3  客戶端的實現(xiàn) 173
13.6.4  運行應(yīng)用 174
13.7  上機演練 175
練習(xí)一:創(chuàng)建一個簡單的WebSocket服務(wù)器 175
練習(xí)二:實現(xiàn)一個簡單的聊天室功能 176
練習(xí)三:實現(xiàn)客戶端與服務(wù)器的實時通信 177
13.8  本章小結(jié) 178
第 14 章  TLS/SSL 179
14.1  了解TLS/SSL 179
14.1.1  加密算法 179
14.1.2  安全通道 182
14.1.3  TLS/SSL握手過程 182
14.1.4  HTTPS 185
14.2  Node.js中的TLS/SSL 186
14.3  產(chǎn)生私鑰 186
14.4  實戰(zhàn):構(gòu)建TLS服務(wù)器和客戶端 187
14.4.1  構(gòu)建TLS服務(wù)器 187
14.4.2  構(gòu)建TLS客戶端 188
14.4.3  運行應(yīng)用 189
14.5  上機演練 190
練習(xí)一:生成自簽名SSL證書和私鑰 190
練習(xí)二:構(gòu)建TLS服務(wù)器和客戶端 191
14.6  本章小結(jié) 192
第 15 章  常用Web中間件 193
15.1  Express 193
15.1.1  安裝Express 193
15.1.2  實戰(zhàn):編寫“Hello World”應(yīng)用 195
15.1.3  運行“Hello World”應(yīng)用 195
15.1.4  實戰(zhàn):使用Express構(gòu)建REST API 195
15.1.5  測試Express的REST API 198
15.2  Socket.IO 201
15.2.1  Socket.IO的主要特點 201
15.2.2  安裝Socket.IO 202
15.2.3  實戰(zhàn):編寫Socket.IO服務(wù)器 203
15.2.4  實戰(zhàn):編寫Socket.IO客戶端 204
15.2.5  運行應(yīng)用 205
15.3  上機演練 206
練習(xí)一:使用Express構(gòu)建REST服務(wù) 206
練習(xí)二:使用Socket.IO實現(xiàn)一個簡單的實時聊天應(yīng)用 207
15.4  本章小結(jié) 209
第 16 章  Vue.js與響應(yīng)式編程 210
16.1  常見UI框架Vue.js 210
16.1.1  Vue.js與jQuery的不同 210
16.1.2  Vue.js的下載和安裝 212
16.1.3  實戰(zhàn):創(chuàng)建Vue.js應(yīng)用 214
16.2  了解Observable機制 217
16.2.1  了解Observable的基本概念 218
16.2.2  定義觀察者 218
16.2.3  執(zhí)行訂閱 219
16.2.4  創(chuàng)建Observable對象 220
16.2.5  實現(xiàn)多播 221
16.2.6  處理錯誤 223
16.3  了解RxJS技術(shù) 224
16.3.1  創(chuàng)建Observable對象的函數(shù) 224
16.3.2  了解操作符 225
16.3.3  處理錯誤 226
16.4  了解Vue.js中的reactive 227
16.5  上機演練 229
練習(xí)一:探索Vue.js與jQuery的不同 229
練習(xí)二:使用create-vue創(chuàng)建并運行Vue.js應(yīng)用 231
練習(xí)三:理解Vue.js中的響應(yīng)式和Observable機制 231
16.6  本章小結(jié) 232
第 17 章  操作MySQL 233
17.1  下載安裝MySQL 233
17.1.1  下載安裝包 233
17.1.2  解壓安裝包 233
17.1.3  創(chuàng)建my.ini 234
17.1.4  初始化安裝 234
17.1.5  啟動MySQL Server 234
17.1.6  使用MySQL客戶端 235
17.1.7  關(guān)閉MySQL Server 235
17.2  MySQL的基本操作 236
17.3  實戰(zhàn):使用Node.js操作MySQL 237
17.3.1  安裝mysql模塊 237
17.3.2  實現(xiàn)簡單的查詢 239
17.3.3  運行應(yīng)用 239
17.4  深入理解mysql模塊 242
17.4.1  建立連接 242
17.4.2  連接選項 243
17.4.3  關(guān)閉連接 244
17.4.4  執(zhí)行CURD 245
17.5  上機演練 247
練習(xí)一:安裝并配置MySQL 247
練習(xí)二:使用Node.js操作MySQL進(jìn)行基本數(shù)據(jù)庫操作 248
練習(xí)三:深入理解mysql模塊的使用 250
17.6  本章小結(jié) 251
第 18 章  操作MongoDB 252
18.1  安裝MongoDB 252
18.1.1  MongoDB簡介 252
18.1.2  下載和安裝MongoDB 253
18.1.3  啟動MongoDB服務(wù) 254
18.1.4  連接到MongoDB服務(wù)器 254
18.2  MongoDB的基本操作 255
18.2.1  顯示已有的數(shù)據(jù)庫 255
18.2.2  創(chuàng)建和使用數(shù)據(jù)庫 255
18.2.3  插入文檔 256
18.2.4  查詢文檔 259
18.2.5  修改文檔 264
18.2.6  刪除文檔 269
18.3  實戰(zhàn):使用Node.js操作MongoDB 270
18.3.1  安裝mongodb模塊 270
18.3.2  實現(xiàn)訪問MongoDB 272
18.3.3  運行應(yīng)用 272
18.4  深入理解mongodb模塊 273
18.4.1  建立連接 273
18.4.2  插入文檔 273
18.4.3  查找文檔 274
18.4.4  修改文檔 276
18.4.5  刪除文檔 277
18.5  上機演練 278
練習(xí)一:安裝MongoDB并連接查看數(shù)據(jù)庫 278
練習(xí)二:在Node.js應(yīng)用中操作MongoDB 278
練習(xí)三:深入理解Node.js中的mongodb模塊操作 279
18.6  本章小結(jié) 280
第 19 章  操作Redis 281
19.1  下載和安裝Redis 281
19.1.1  Redis簡介 281
19.1.2  在Linux平臺上安裝Redis 282
19.1.3  在Windows平臺上安裝Redis 283
19.2  Redis的數(shù)據(jù)類型及基本操作 284
19.2.1  Redis key 284
19.2.2  Redis String 285
19.2.3  修改和查詢key空間 286
19.2.4  Redis超時 287
19.2.5  Redis List 287
19.2.6  使用Redis List的第一步 288
19.2.7  List常見的用例 289
19.2.8  限制列表 289
19.3  實戰(zhàn):使用Node.js操作Redis 290
19.3.1  安裝redis模塊 290
19.3.2  實現(xiàn)訪問Redis 291
19.3.3  運行應(yīng)用 292
19.4  上機演練 293
練習(xí)一:安裝Redis并測試連接 293
練習(xí)二:使用Redis存儲和檢索數(shù)據(jù) 293
練習(xí)三:使用Redis List實現(xiàn)消息隊列 294
19.5  本章小結(jié) 295
第 20 章  綜合實戰(zhàn):基于WebSocket的即時聊天應(yīng)用 296
20.1  應(yīng)用概述 296
20.2  實現(xiàn)后臺服務(wù)器 297
20.2.1  初始化websocket-chat 297
20.2.2  訪問靜態(tài)文件資源 298
20.2.3  事件處理 299
20.3  實現(xiàn)前臺客戶端 300
20.3.1  頁面HTML及樣式設(shè)計 300
20.3.2  業(yè)務(wù)邏輯 302
20.4  運行效果 309
20.5  上機演練 313
練習(xí)一:初始化WebSocket聊天應(yīng)用 313
練習(xí)二:配置靜態(tài)文件服務(wù)和事件處理 314
練習(xí)三:完善前臺客戶端 315
20.6  本章小結(jié) 316
參考文獻(xiàn) 317

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號