《Node.js開發實戰教程(慕課版)》是2020年人民郵電出版社出版的圖書,作者是鐘小平。
基本介紹
- 中文名:Node.js開發實戰教程(慕課版)
- 作者:鐘小平
- 出版社:人民郵電出版社
- ISBN:9787115537249
內容簡介,圖書目錄,作者簡介,
內容簡介
本書以Node.js知識和框架為主線,詳細介紹Node.js開發的基礎知識。全書分為10章,內容包括Node.js入門、Node.js編程基礎、模組與包的管理與使用、檔案系統操作、網路編程、SQL資料庫操作、MongoDB資料庫操作、Node.js框架與Express、應用程式測試與部署、綜合實例——構建部落格網站。本書從編程基礎講起,突出實戰操作,通過典型案例詳細講解Node.js開發中最常用的原生模組與第三方框架和模組。
圖書目錄
第 1章 Node.js入門 1
1.1 Node.js簡介 1
1.1.1 什麼是Node.js 1
1.1.2 Node.js的特點 2
1.1.3 Node.js的套用場合 5
1.2 部署Node.js開發環境 6
1.2.1 在Windows系統上安裝Node.js 6
1.2.2 在Linux系統上安裝Node.js 7
1.2.3 管理Node.js版本 8
1.2.4 互動式運行環境——REPL 9
1.2.5 安裝開發工具Visual Studio Code 10
1.3 開始開發Node.js應用程式 10
1.3.1 實戰演練——構建第 一個Node.js應用程式 10
1.3.2 運行Node.js程式 12
1.3.3 調試Node.js程式 13
1.4 本章小結 16
習題 16
第 2章 Node.js編程基礎 17
2.1 JavaScript基本語法 17
2.1.1 JavaScript版本 17
2.1.2 JavaScript運行環境 18
2.1.3 JavaScript語句與注釋 18
2.1.4 變數 19
2.1.5 數據類型 21
2.1.6 流程控制 23
2.1.7 函式 24
2.1.8 類 27
2.1.9 嚴格模式 28
2.1.10 JavaScript編程規範 29
2.2 Node.js回調函式 30
2.2.1 什麼是回調函式 30
2.2.2 回調函式示例 31
2.3 Node.js事件機制 31
2.3.1 事件循環 32
2.3.2 Node.js事件的監聽與觸發 33
2.4 Node.js全局對象 34
2.4.1 全局變數__filename和__dirname 35
2.4.2 console模組 35
2.4.3 process對象 36
2.5 Node.js的定時器 39
2.5.1 設定定時器 39
2.5.2 取消定時器 40
2.5.3 Timeout和Immediate類 40
2.5.4 setImmediate方法
與setTimeout方法的對比 40
2.5.5 process.nextTick與setImmediate的對比 41
2.6 Buffer數據類型 41
2.6.1 創建Buffer實例 42
2.6.2 Buffer用於編碼轉換 42
2.6.3 將Buffer實例轉換為JSON對象 43
2.6.4 Buffer實例基本操作 43
2.7 Node.js的流 45
2.7.1 概述 45
2.7.2 可讀流 46
2.7.3 可寫流 47
2.7.4 管道讀寫操作 48
2.8 實戰演練——提供圖片瀏覽服務 49
2.8.1 實現思路 49
2.8.2 編寫代碼 50
2.8.3 運行程式 51
2.9 本章小結 52
習題 52
第3章 模組與包的管理和使用 54
3.1 Node.js的模組系統 54
3.1.1 Node.js為什麼要使用模組 54
3.1.2 自定義模組 55
3.1.3 導入模組 55
3.1.4 使用module.exports定義模組 55
3.1.5 exports與module.exports的關係 56
3.1.6 模組載入順序 57
3.2 使用Node.js的核心模組 59
3.2.1 os模組——提供基本的系統操作方法 59
3.2.2 util模組——提供實用工具 60
3.2.3 path模組——處理和轉換檔案路徑 62
3.2.4 url模組——URL處理與解析 63
3.2.5 querystring模組——URL查詢字元串處理和解析 64
3.3 Node.js包的管理與使用 65
3.3.1 什麼是npm 65
3.3.2 理解包與模組 66
3.3.3 npm包管理器 66
3.3.4 查找和選擇包 66
3.3.5 使用npm命令安裝包 70
3.3.6 使用語義版本控制管理代碼(包) 71
3.3.7 使用package.json檔案管理本地安裝包 72
3.3.8 包的其他操作 74
3.3.9 使用淘寶npm鏡像 74
3.4 實戰演練——抓取網頁中的圖片 75
3.4.1 技術準備 75
3.4.2 實現思路 76
3.4.3 創建項目目錄並準備package.json檔案 76
3.4.4 安裝request和cheerio包 77
3.4.5 定義一個模組用於解析網頁文檔 77
3.4.6 編寫主入口檔案index.js 77
3.4.7 運行程式 78
3.5 本章小結 79
習題 79
第4章 檔案系統操作 80
4.1 Node.js的檔案系統基礎 80
4.1.1 fs模組簡介 80
4.1.2 同步檔案操作與異步檔案操作 81
4.1.3 檔案路徑 82
4.1.4 檔案模式 83
4.1.5 檔案系統標誌 84
4.1.6 檔案描述符 84
4.2 檔案與目錄基本操作 85
4.2.1 打開檔案 85
4.2.2 獲取檔案信息 85
4.2.3 讀取檔案 87
4.2.4 寫入檔案 88
4.2.5 檔案的其他基本操作 90
4.2.6 目錄的基本操作 91
4.3 檔案系統的高級操作 92
4.3.1 使用檔案操作的流接口 92
4.3.2 檔案遍歷 93
4.3.3 檔案監視 94
4.3.4 操作JSON檔案 96
4.3.5 讀取GBK格式的檔案 97
4.4 實戰演練——操作表格檔案 98
4.4.1 使用CSV包的準備工作 98
4.4.2 從CSV檔案中讀取並解析數據 98
4.4.3 將記錄轉換為CSV文本並保存到CSV檔案中 100
4.4.4 對CSV數據進行轉換處理 100
4.4.5 組合使用多個子模組來處理CSV數據 101
4.5 本章小結 101
習題 101
第5章 網路編程 103
5.1 TCP伺服器與客戶端 103
5.1.1 TCP基礎 103
5.1.2 net模組提供的API 104
5.1.3 創建TCP伺服器和客戶端 106
5.1.4 接收和處理物聯網數據 107
5.2 UDP伺服器與客戶端 108
5.2.1 UDP基礎 108
5.2.2 dgram模組提供的API 109
5.2.3 創建UDP伺服器和客戶端 110
5.2.4 通過UDP實現檔案上傳 111
5.3 HTTP伺服器和客戶端 112
5.3.1 HTTP基礎 112
5.3.2 實現HTTP伺服器 112
5.3.3 實現HTTP客戶端 115
5.3.4 HTTP伺服器獲取並解析請求內容 117
5.4 使用WebSocket實現瀏覽器與伺服器的實時通信 119
5.4.1 WebSocket簡介 119
5.4.2 使用Node.js實現WebSocket伺服器和客戶端 120
5.4.3 瀏覽器客戶端 122
5.4.4 Socket.IO 123
5.5 實戰演練——構建實時聊天室 126
5.5.1 準備Web框架 126
5.5.2 編寫伺服器端程式 128
5.5.3 編寫客戶端程式 129
5.5.4 測試 130
5.5 本章小結 131
習題 131
第6章 SQL資料庫操作 133
6.1 操作MySQL資料庫 133
6.1.1 MySQL伺服器安裝和基本使用 133
6.1.2 Node.js的MySQL驅動 136
6.1.3 連線MySQL資料庫 136
6.1.4 執行資料庫操作 137
6.1.5 記錄的增查改刪操作 138
6.1.6 防止SQL注入攻擊 139
6.1.7 使用流式查詢 140
6.1.8 使用預處理語句 140
6.1.9 使用連線池 141
6.2 優雅地編寫異步代碼 142
6.2.1 Promise 142
6.2.2 Generator 144
6.2.3 co模組 146
6.2.4 async/await 147
6.2.5 使用Promise包裝器操作MySQL資料庫 151
6.3 使用Node.js ORM框架操作關係資料庫 152
6.3.1 Sequelize簡介 152
6.3.2 Sequelize的基本使用 152
6.3.3 使用Sequelize的關聯 156
6.4 實戰演練——圖書借閱記錄管理 158
6.4.1 編寫模型部分代碼 158
6.4.2 編寫數據操作部分代碼 159
6.5 本章小結 161
習題 161
第7章 MongoDB資料庫操作 163
7.1 MongoDB資料庫基礎 163
7.1.1 NoSQL資料庫簡介 163
7.1.2 MongoDB資料庫簡介 164
7.1.3 MongoDB基本概念 164
7.1.4 MongoDB的安裝和基本使用 166
7.2 使用原生驅動連線和操作MongoDB資料庫 168
7.2.1 連線到MongoDB 169
7.2.2 添加MongoDB文檔 169
7.2.3 查詢MongoDB文檔 170
7.2.4 更改MongoDB文檔 171
7.2.5 刪除MongoDB文檔 172
7.2.6 為MongoDB集合創建索引 172
7.2.7 以“同步”方式編寫MongoDB操作代碼 172
7.3 使用Mongoose操作MongoDB資料庫 173
7.3.1 Mongoose基本概念 173
7.3.2 使用Mongoose的基本步驟 174
7.3.3 文檔操作 177
7.3.4 數據驗證 180
7.3.5 中間件 181
7.3.6 子文檔 183
7.3.7 Mongoose對Promise的支持 184
7.4 實戰演練——開發圖書使用管理操作接口 184
7.4.1 Mongoose的填充功能 185
7.4.2 模式和模型定義 186
7.4.3 編寫資料庫操作接口 187
7.4.4 調用資料庫操作接口 188
7.5 本章小結 189
習題 189
第8章 Node.js框架與Express 190
8.1 Node.js框架概述 190
8.1.1 MVC框架 190
8.1.2 REST API框架 191
8.1.3 全棧框架 191
8.1.4 實時框架 192
8.1.5 Node.js框架的選擇 192
8.2 Express框架基礎 192
8.2.1 簡單的“Hello World”示例程式 193
8.2.2 使用Express生成器創建項目腳手架 193
8.2.3 Express工作機制 195
8.3 Express路由 197
8.3.1 路由結構 197
8.3.2 路由方法 197
8.3.3 路由路徑 198
8.3.4 路由參數 198
8.3.5 路由處理程式 199
8.3.6 回響方法 200
8.3.7 app.route()方法 200
8.3.8 Express路由器 201
8.4 Express中間件 201
8.4.1 進一步理解中間件 202
8.4.2 使用中間件 202
8.4.3 編寫自己的中間件 205
8.5 視圖與模板引擎 207
8.5.1 模板引擎概述 207
8.5.2 EJS語法 208
8.5.3 EJS模板引擎的使用 209
8.6 Express與資料庫集成 210
8.7 Express錯誤處理 211
8.7.1 捕獲錯誤 211
8.7.2 默認錯誤處理程式 212
8.7.3 編寫錯誤處理程式 212
8.8 實戰演練——圖書信息管理的REST API接口 213
8.8.1 了解REST API 213
8.8.2 演練目標 215
8.8.3 實現思路與技術準備 215
8.8.4 創建項目 216
8.8.5 編寫資料庫接口程式 216
8.8.6 編寫主入口檔案 218
8.8.7 運行程式進行測試 220
8.8.8 控制API版本 221
8.9 本章小結 222
習題 222
第9章 應用程式測試與部署 224
9.1 Node.js應用程式的單元測試 224
9.1.1 單元測試概述 224
9.1.2 使用斷言編寫簡單的測試腳本 225
9.1.3 使用測試框架Mocha進行單元測試 229
9.2 實戰演練——為應用程式進行單元測試 232
9.2.1 熟悉supertest測試庫 232
9.2.2 編寫測試腳本 235
9.2.3 執行自動化測試 236
9.3 Node.js應用程式的部署和運行管理 237
9.3.1 Node.js應用程式的部署方式 237
9.3.2 讓Node.js應用程式更穩定地運行 238
9.3.3 使用PM2管理Node.js應用程式 239
9.3.4 使用PM2的配置檔案管理應用程式 241
9.3.5 在Windows平台上配置開機自動啟動Node.js應用程式 243
9.4 本章小結 246
習題 246
第 10章 綜合實例——構建部落格網站 248
10.1 項目準備 248
10.1.1 項目概述 248
10.1.2 創建項目腳手架 249
10.2 資料庫設計與實現 250
10.2.1 數據存儲和組織技術 250
10.2.2 定義存儲文章信息的模型 251
10.2.3 定義存儲用戶信息的模型 253
10.3 用戶界面設計與實現 255
10.3.1 前端技術 256
10.3.2 靜態檔案 256
10.3.3 公共模板 257
10.3.4 內容模板 258
10.4 業務邏輯設計與實現 260
10.4.1 使用passport實現用戶認證 260
10.4.2 session控制 263
10.4.3 使用Express中間件 264
10.4.4 定義控制器處理具體業務 268
10.4.5 路由控制 271
10.4.6 主檔案 272
10.5 本章小結 273
習題 273
作者簡介
鐘小平,青島雲集技術有限公司工程師,出版暢銷書《網路作業系統——Windows Server 2012 R2配置與管理》《CentOS Linux系統管理與運維》《OpenStack雲計算實戰》《Ubuntu Linux作業系統》等。