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