內容簡介
《Node.js從基礎到項目實踐(視頻教學版)》以理論結合實踐的形式,講解了Node.js 基礎、框架、進階知識和項目實踐。本書為視頻教學版,每一章節都有相對應的視頻講解,通過視頻講解可快速切入主題,提高學習效率。
全書分為4 大部分,共13 章,分別是Node.js 基礎入門、Node.js 框架、Node.js 進階以及企業項目實踐。其中,第1~3 章為Node.js 基礎入門講解,包括Node.js 核心模組、自定義模組、第三方模組;第4~7 章為Node.js 框架講解,包括Express 流行框架、MySQL 資料庫、在Express 框架中操作MySQL 資料庫以及Express 框架身份驗證;第8~12 章為Node.js 進階講解,包括Node.js 事件循環、Koa 框架、socket.io、網路爬蟲、GraphQL 基礎語法;第13 章為企業項目實踐講解,使用Express 框架和MySQL 資料庫完成新聞管理系統API 的開發。
圖書目錄
第1章 Node.js 基礎入門 1
1.1 回顧瀏覽器中的JavaScript 1
1.2 Node.js 簡介 2
1.2.1 什麼是Node.js 2
1.2.2 詳解Node.js 運行環境 2
1.3 安裝Node.js 運行環境 3
1.3.1 選擇Node.js 版本 3
1.3.2 查看Node.js 版本號 3
1.4 在Node.js 中執行JavaScript 檔案 4
1.5 Node.js 內置模組 5
1.5.1 fs 模組 5
1.5.2 path 模組 7
1.5.3 http 模組 10
1.5.4 http 模組綜合案例 13
1.6 渲染數據列表 14
1.7 回響靜態資源 16
第2章 Node.js 自定義模組 19
2.1 創建自定義模組 19
2.2 共享自定義模組的屬性和方法 20
2.2.1 module 對象 20
2.2.2 自定義模組共享成員的注意事項 21
2.2.3 exports 對象 22
2.2.4 CommonJS 規範 25
第3章 Node.js 第三方模組 26
3.1 什麼是包 26
3.2 npm 簡介 26
3.2.1 nodemon 工具 27
3.2.2 第三方模組moment 28
3.2.3 第三方模組目錄結構 29
3.2.4 包的分類 31
3.3 切換模組下載伺服器 31
3.3.1 切換至淘寶鏡像伺服器 31
3.3.2 nrm 工具的使用 32
3.4 發布自定義模組包 33
3.4.1 包的結構規範 33
3.4.2 定義格式化日期模組 33
3.4.3 發布包 36
3.4.4 刪除自定義模組包 38
第4章 Express 框架 39
4.1 什麼是Express 39
4.1.1 Express 框架的基本使用 39
4.1.2 獲取URL 參數 42
4.2 使用express.static()託管靜態資源 43
4.3 Express 路由 45
4.3.1 路由的基本使用 45
4.3.2 模組化路由 46
4.4 Express 中間件 48
4.4.1 什麼是中間件 48
4.4.2 定義Express 中間件 48
4.4.3 中間件的作用 50
4.4.4 定義多個全局中間件 51
4.4.5 局部中間件 52
4.4.6 中間件分類 54
4.5 使用Express 框架寫接口 60
4.5.1 定義GET 請求接口 60
4.5.2 定義POST 請求接口 62
4.5.3 接口跨域 63
4.5.4 定義JSONP 接口 64
第5章 MySQL 資料庫 66
5.1 什麼是MySQL 資料庫 66
5.2 Navicat 可視化管理工具 67
5.2.1 安裝Navicat 可視化管理工具 67
5.2.2 使用Navicat 管理MySQL 資料庫 68
5.2.3 創建數據表 69
5.3 使用SQL 語句管理資料庫 70
5.3.1 SELECT 查詢語句 70
5.3.2 INSERT INTO 插入語句 71
5.3.3 UPDATE 更新語句 72
5.3.4 DELETE 刪除語句 73
5.3.5 WHERE 子句 73
5.3.6 AND 和OR 運算符 74
5.3.7 ORDER BY 子句 75
5.3.8 COUNT(*)函式 77
第6章 Express 框架操作MySQL 資料庫 78
6.1 安裝mysql 第三方模組 78
6.1.1 安裝mysql 模組 78
6.1.2 執行SQL 語句 79
6.2 運算元據庫 79
6.2.1 新增數據 80
6.2.2 更新數據 81
6.2.3 刪除數據 83
第7章 Express 框架身份認證 84
7.1 Web 開發模式 84
7.2 身份認證分類 85
7.2.1 Session 認證機制 85
7.2.2 伺服器端Session 認證 86
7.2.3 伺服器端安裝express-session 中間件 87
7.3 JWT 認證 89
7.3.1 什麼是JWT 認證 89
7.3.2 在Express 項目中使用JWT 認證 90
第8章 Node.js 事件循環 93
8.1 瀏覽器中的事件循環 93
8.2 宏任務與微任務 96
8.3 多層嵌套promise 事件循環案例 97
8.4 混合嵌套事件循環案例 100
8.5 Node.js 事件循環 102
8.6 Node.js 事件循環案例 103
第9章 Koa 框架 106
9.1 安裝Koa 框架 106
9.2 詳解context 對象 107
9.2.1 context.request 屬性 107
9.2.2 context.response 屬性 108
9.3 載入HTML 檔案 109
9.4 路由 110
9.5 模組化路由 112
9.6 URL 請求參數 114
9.7 koa-bodyparser 模組的使用 116
9.8 託管靜態資源 118
9.9 異步處理 120
9.9.1 同步中間件執行順序 120
9.9.2 異步中間件 121
9.10 錯誤類型中間件 123
9.11 接口跨域 126
9.12 身份認證 127
9.12.1 koa-session 認證 127
9.12.2 從Session 中讀取數據 129
9.12.3 JWT 認證 130
9.12.4 測試JWT 認證 133
9.13 在Koa 中操作MySQL 134
9.14 Koa 框架項目實踐 135
9.14.1 初始化項目 136
9.14.2 配置常用中間件 136
9.14.3 初始化路由模組 137
9.14.4 安裝mysql 模組 139
9.14.5 實現註冊API 接口 140
9.14.6 登錄API 接口 144
9.14.7 Token 解密 147
9.15 模板引擎 148
第10章 socket.io 聊天室案例 151
10.1 什麼是socket.io 151
10.1.1 項目初始化 152
10.1.2 登錄聊天室 154
10.2 配置socket.io 155
10.2.1 配置伺服器端 156
10.2.2 配置客戶端 156
10.3 實現實時聊天 157
10.4 模擬Session 顯示用戶名 159
10.5 顯示聊天室線上人數 162
10.6 私聊 164
10.7 群組聊天 166
第11章 網路爬蟲 169
11.1 什麼是爬蟲 169
11.2 第一個爬蟲程式 169
11.3 爬取前後端分離的網頁內容 173
11.4 Selenium 簡介 177
11.5 自動搜尋 178
11.6 使用Selenium 實現爬蟲功能 179
第12章 GraphQL 基礎語法 184
12.1 什麼是GraphQL 184
12.2 GraphQL 快速體驗 184
12.3 GraphQL 伺服器端代碼解析 186
12.4 定義對象數據類型 188
12.5 參數傳遞 189
12.6 標量類型 191
12.7 枚舉類型 192
12.8 input 輸入類型 193
12.9 回調函式參數詳解 195
第13章 新聞管理系統 199
13.1 初始化項目 199
13.2 配置常用中間件 200
13.3 創建路由模組 200
13.3.1 初始化路由模組 201
13.3.2 抽離路由模組事件處理函式 201
13.4 創建db_users 表 202
13.5 安裝mysql 模組 203
13.6 註冊API 接口 204
13.7 使用@escook/express-joi 中間件驗證表單數據 208
13.8 登錄API 接口 211
13.9 Token 解密 216
13.10 個人中心管理 217
13.10.1 獲取當前用戶的API 接口 218
13.10.2 更新用戶信息的API 接口 221
13.10.3 重置密碼的API 接口 224
13.10.4 更新用戶頭像的API 接口 229
13.11 新聞文章分類管理 232
13.11.1 新建db_article_nav 數據表 233
13.11.2 獲取新聞文章分類的API 接口 233
13.11.3 新增新聞文章分類的API 接口 236
13.11.4 刪除新聞文章分類的API 接口 241
13.11.5 根據id 獲取新聞文章分類 245
13.11.6 根據id 更新新聞文章分類 248
13.12 新聞文章管理 253
13.12.1 新建db_article 數據表 253
13.12.2 發布新聞文章的API 接口 254
13.12.3 獲取新聞文章列表的API 接口 260
13.12.4 根據id 刪除新聞 264
13.12.5 根據id 獲取新聞文章詳情 267