循序漸進Node.js企業級開發實踐

柳偉衛

  • 出版商: 清華大學
  • 出版日期: 2024-12-01
  • 定價: $534
  • 售價: 8.5$454
  • 語言: 簡體中文
  • ISBN: 7302675554
  • ISBN-13: 9787302675556
  • 相關分類: Node.js
  • 下單後立即進貨 (約4週~6週)

  • 循序漸進Node.js企業級開發實踐-preview-1
  • 循序漸進Node.js企業級開發實踐-preview-2
  • 循序漸進Node.js企業級開發實踐-preview-3
循序漸進Node.js企業級開發實踐-preview-1

相關主題

商品描述

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

目錄大綱

目    錄

第 1 章  走進Node.js的世界 1

1.1  認識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的關系 6

1.2.3  安裝npm鏡像 6

1.2.4  選擇合適的IDE 7

1.3  實戰:第一個Node.js應用 7

1.3.1  創建Node.js應用 7

1.3.2  運行Node.js應用 7

1.3.3  小結 8

1.4  實戰:在Node.js應用中使用TypeScript 8

1.4.1  創建TypeScript版本的Node.js應用 8

1.4.2  運行TypeScript應用 9

1.5  上機演練 9

1.6  本章小結 11

第 2 章  模塊化 12

2.1  理解模塊化機制 12

2.1.1  理解CommonJS規範 12

2.1.2  理解ECMAScript模塊 14

2.1.3  CommonJS和ECMAScript模塊的異同點 16

2.1.4  Node.js的模塊實現 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  創建模塊 20

2.3  核心模塊 20

2.3.1  核心模塊介紹 20

2.3.2  實戰:核心模塊fs的簡單示例 20

2.4  上機演練 21

2.5  本章小結 22

第 3 章  測試 23

3.1  使用斷言 23

3.1.1  什麽是斷言測試 23

3.1.2  嚴格模式和遺留模式 24

3.1.3  實戰:斷言的使用 25

3.1.4  瞭解AssertionError 27

3.1.5  實戰:deepStrictEqual示例 27

3.2  第三方測試工具 29

3.2.1  Nodeunit 30

3.2.2  Mocha 31

3.2.3  Vows 31

3.3  上機演練 33

練習一:使用Node.js的斷言功能進行簡單的單元測試 33

練習二:使用.js的AssertionError 34

練習三:使用Node.js的第三方測試工具 34

3.4  本章小結 35

第 4 章  緩沖區 36

4.1  瞭解緩沖區 36

4.1.1  瞭解TypedArray 36

4.1.2  Buffer類 37

4.2  創建緩沖區 38

4.2.1  初始化緩沖區的API 39

4.2.2  理解數據的安全性 39

4.2.3  啟用零填充 40

4.2.4  指定字符編碼 40

4.3  切分緩沖區 41

4.4  連接緩沖區 42

4.5  比較緩沖區 43

4.6  緩沖區編解碼 44

4.6.1  解碼器和編碼器 44

4.6.2  緩沖區解碼 44

4.6.3  緩沖區編碼 45

4.7  上機演練 46

練習一:創建緩沖區 46

練習二:切分緩沖區 46

練習三:連接緩沖區 47

練習四:緩沖區編解碼 47

4.8  本章小結 48

第 5 章  事件處理 49

5.1  理解事件和回調 49

5.1.1  事件循環 50

5.1.2  事件驅動 50

5.2  事件發射器 51

5.2.1  將參數和this傳遞給監聽器 51

5.2.2  異步與同步 52

5.2.3  僅處理事件一次 52

5.3  事件類型 53

5.3.1  事件類型的定義 53

5.3.2  內置的事件類型 54

5.3.3  error事件 54

5.4  事件的操作 56

5.4.1  實戰:設置最大監聽器 56

5.4.2  實戰:獲取已註冊的事件的名稱 56

5.4.3  實戰:獲取監聽器數組的副本 57

5.4.4  實戰:將事件監聽器添加到監聽器數組的開頭 57

5.4.5  實戰:移除監聽器 58

5.5  上機演練 60

5.6  本章小結 61

第 6 章  定時處理 62

6.1  定時處理常用類 62

6.1.1  Immediate 62

6.1.2  Timeout 63

6.2  定時調度 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  本章小結 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  文件系統標志 77

7.3.2  實戰:打開當前目錄下的文件 78

7.4  實戰:讀取文件 79

7.4.1  fs.read 79

7.4.2  fs.readdir 80

7.4.3  fs.readFile 80

7.5  實戰:寫入文件 82

7.5.1  將buffer寫入文件 82

7.5.2  將字符串寫入文件 83

7.5.3  將數據寫入文件 84

7.6  上機演練 85

7.7  本章小結 86

第 8 章  進程 87

8.1  執行外部命令 87

8.1.1  spawn() 87

8.1.2  exec() 89

8.1.3  execFile() 90

8.2  子進程ChildProcess 92

8.2.1  生成子進程 92

8.2.2  進程間通信 92

8.3  終止進程 94

8.4  上機演練 94

練習一:執行外部命令 94

練習二:進程間通信 95

練習三:終止進程 95

8.5  本章小結 96

第 9 章  流 97

9.1  流的概述 97

9.1.1  流的類型 97

9.1.2  對象模式 97

9.1.3  流中的緩沖區 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  雙工流與轉換流 110

9.4.1  實現雙工流 110

9.4.2  實戰:雙工流的例子 110

9.4.3  對象模式的雙工流 111

9.4.4  實現轉換流 112

9.5  上機演練 112

練習一:使用可讀流讀取文件 112

練習二:使用可寫流寫入文件 113

練習三:實現一個簡單的雙工流 113

9.6  本章小結 114

第 10 章  TCP 115

10.1  創建TCP服務器 115

10.1.1  瞭解TCP 115

10.1.2  瞭解socket 116

10.1.3  node:net模塊 117

10.1.4  實戰:創建TCP服務器 117

10.2  監聽連接 118

10.2.1  server.listen(handle[, backlog][, callback]) 119

10.2.2  server.listen(options[, callback]) 119

10.3  發送和接收數據 120

10.3.1  創建socket對象 120

10.3.2  創建socket對象來發送和接收數據 121

10.3.3  實戰:TCP服務器的例子 121

10.4  關閉TCP服務器 122

10.4.1  socket.end() 123

10.4.2  server.close() 124

10.5  上機演練 125

練習一:創建TCP服務器 125

練習二:發送和接收數據 126

練習三:關閉TCP服務器 127

10.6  本章小結 128

第 11 章  UDP 129

11.1  創建UDP服務器 129

11.1.1  瞭解UDP 129

11.1.2  TCP與UDP的區別 130

11.1.3  實戰:創建UDP服務器 130

11.2  監聽連接 131

11.3  發送和接收數據 131

11.3.1  message事件 131

11.3.2  socket.send()方法 132

11.4  關閉UDP服務器 133

11.5  實戰:UDP服務器通信 134

11.5.1  UDP服務器 134

11.5.2  UDP客戶端 135

11.5.3  運行應用 135

11.6  上機演練 136

練習一:創建UDP服務器 136

練習二:發送和接收數據 137

練習三:關閉UDP服務器 137

11.7  本章小結 138

第 12 章  HTTP 139

12.1  創建HTTP服務器 139

12.1.1  使用http.Server類創建服務器 139

12.1.2  http.Server事件 140

12.2  處理HTTP的常用操作 142

12.3  請求對象和響應對象 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設計原則 150

12.5  成熟度模型 151

12.5.1  第0級:使用HTTP作為傳輸方式 151

12.5.2  第1級:引入資源的概念 153

12.5.3  第2級:根據語義使用HTTP動詞 153

12.5.4  第3級:使用HATEOAS 155

12.6  實戰:構建REST服務 157

12.6.1  新增用戶 157

12.6.2  修改用戶 158

12.6.3  刪除用戶 159

12.6.4  響應請求 160

12.6.5  運行應用 161

12.7  上機演練 163

練習一:創建一個簡單的HTTP服務器 163

練習二:實現一個簡單的RESTful API服務 164

12.8  本章小結 165

第 13 章  WebSocket 166

13.1  創建WebSocket服務器 166

13.1.1  常見的Web推送技術 166

13.1.2  使用ws創建WebSokcet服務器 168

13.2  監聽連接 168

13.3  發送和接收數據 169

13.3.1  發送數據 169

13.3.2  發送ping和pong 170

13.3.3  接收數據 170

13.4  準備的狀態 171

13.5  關閉WebSocket服務器 171

13.6  實戰:WebSocket聊天服務器 171

13.6.1  聊天服務器的需求 172

13.6.2  服務器的實現 172

13.6.3  客戶端的實現 173

13.6.4  運行應用 174

13.7  上機演練 175

練習一:創建一個簡單的WebSocket服務器 175

練習二:實現一個簡單的聊天室功能 176

練習三:實現客戶端與服務器的實時通信 177

13.8  本章小結 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  產生私鑰 186

14.4  實戰:構建TLS服務器和客戶端 187

14.4.1  構建TLS服務器 187

14.4.2  構建TLS客戶端 188

14.4.3  運行應用 189

14.5  上機演練 190

練習一:生成自簽名SSL證書和私鑰 190

練習二:構建TLS服務器和客戶端 191

14.6  本章小結 192

第 15 章  常用Web中間件 193

15.1  Express 193

15.1.1  安裝Express 193

15.1.2  實戰:編寫“Hello World”應用 195

15.1.3  運行“Hello World”應用 195

15.1.4  實戰:使用Express構建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  實戰:編寫Socket.IO服務器 203

15.2.4  實戰:編寫Socket.IO客戶端 204

15.2.5  運行應用 205

15.3  上機演練 206

練習一:使用Express構建REST服務 206

練習二:使用Socket.IO實現一個簡單的實時聊天應用 207

15.4  本章小結 209

第 16 章  Vue.js與響應式編程 210

16.1  常見UI框架Vue.js 210

16.1.1  Vue.js與jQuery的不同 210

16.1.2  Vue.js的下載和安裝 212

16.1.3  實戰:創建Vue.js應用 214

16.2  瞭解Observable機制 217

16.2.1  瞭解Observable的基本概念 218

16.2.2  定義觀察者 218

16.2.3  執行訂閱 219

16.2.4  創建Observable對象 220

16.2.5  實現多播 221

16.2.6  處理錯誤 223

16.3  瞭解RxJS技術 224

16.3.1  創建Observable對象的函數 224

16.3.2  瞭解操作符 225

16.3.3  處理錯誤 226

16.4  瞭解Vue.js中的reactive 227

16.5  上機演練 229

練習一:探索Vue.js與jQuery的不同 229

練習二:使用create-vue創建並運行Vue.js應用 231

練習三:理解Vue.js中的響應式和Observable機制 231

16.6  本章小結 232

第 17 章  操作MySQL 233

17.1  下載安裝MySQL 233

17.1.1  下載安裝包 233

17.1.2  解壓安裝包 233

17.1.3  創建my.ini 234

17.1.4  初始化安裝 234

17.1.5  啟動MySQL Server 234

17.1.6  使用MySQL客戶端 235

17.1.7  關閉MySQL Server 235

17.2  MySQL的基本操作 236

17.3  實戰:使用Node.js操作MySQL 237

17.3.1  安裝mysql模塊 237

17.3.2  實現簡單的查詢 239

17.3.3  運行應用 239

17.4  深入理解mysql模塊 242

17.4.1  建立連接 242

17.4.2  連接選項 243

17.4.3  關閉連接 244

17.4.4  執行CURD 245

17.5  上機演練 247

練習一:安裝並配置MySQL 247

練習二:使用Node.js操作MySQL進行基本數據庫操作 248

練習三:深入理解mysql模塊的使用 250

17.6  本章小結 251

第 18 章  操作MongoDB 252

18.1  安裝MongoDB 252

18.1.1  MongoDB簡介 252

18.1.2  下載和安裝MongoDB 253

18.1.3  啟動MongoDB服務 254

18.1.4  連接到MongoDB服務器 254

18.2  MongoDB的基本操作 255

18.2.1  顯示已有的數據庫 255

18.2.2  創建和使用數據庫 255

18.2.3  插入文檔 256

18.2.4  查詢文檔 259

18.2.5  修改文檔 264

18.2.6  刪除文檔 269

18.3  實戰:使用Node.js操作MongoDB 270

18.3.1  安裝mongodb模塊 270

18.3.2  實現訪問MongoDB 272

18.3.3  運行應用 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

練習一:安裝MongoDB並連接查看數據庫 278

練習二:在Node.js應用中操作MongoDB 278

練習三:深入理解Node.js中的mongodb模塊操作 279

18.6  本章小結 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的數據類型及基本操作 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  實戰:使用Node.js操作Redis 290

19.3.1  安裝redis模塊 290

19.3.2  實現訪問Redis 291

19.3.3  運行應用 292

19.4  上機演練 293

練習一:安裝Redis並測試連接 293

練習二:使用Redis存儲和檢索數據 293

練習三:使用Redis List實現消息隊列 294

19.5  本章小結 295

第 20 章  綜合實戰:基於WebSocket的即時聊天應用 296

20.1  應用概述 296

20.2  實現後台服務器 297

20.2.1  初始化websocket-chat 297

20.2.2  訪問靜態文件資源 298

20.2.3  事件處理 299

20.3  實現前臺客戶端 300

20.3.1  頁面HTML及樣式設計 300

20.3.2  業務邏輯 302

20.4  運行效果 309

20.5  上機演練 313

練習一:初始化WebSocket聊天應用 313

練習二:配置靜態文件服務和事件處理 314

練習三:完善前臺客戶端 315

20.6  本章小結 316

參考文獻 317