![]() ![]() |
從零開始學Node.js 讀者對象:本書適合Node.js初學者、軟件開發(fā)入門者自學使用,也可用作高等院校相關專業(yè)的教材及參考書。 ![]()
本書從零基礎讀者的角度出發(fā),通過通俗易懂的語言、豐富多彩的實例,循序漸進地讓讀者在實踐中學習Node.js編程知識,并提升自己的實際開發(fā)能力。
全書共分為5篇20章,內容包括初識Node.js、JavaScript基礎、npm包管理器、Node.js基礎、http模塊、fs文件及文件夾操作模塊、path路徑操作模塊、os系統(tǒng)模塊、Node.js中的流、socket.io模塊、異步編程與回調、事件的監(jiān)聽與觸發(fā)、程序調試與異常處理、express模塊基礎、express高級應用之express-penerator、Web開發(fā)中的模板引擎、Node.js與MySQL數(shù)據(jù)庫、Node.js與MongoDB數(shù)據(jù)庫、網(wǎng)絡版五子棋游戲、全棧博客網(wǎng)等。書中知識點講解細致,側重介紹每個知識點的使用場景,涉及的代碼給出了詳細的注釋,可以使讀者輕松領會Node.js程序開發(fā)的精髓,快速提高開發(fā)技能。同時,本書配套了大量教學視頻,掃碼即可觀看,還提供所有程序源文件,方便讀者實踐。 本書適合Node.js初學者、軟件開發(fā)入門者自學使用,也可用作高等院校相關專業(yè)的教材及參考書。
第1篇 Node.js基礎篇
第1章 初識Node.js 2 視頻講解:5節(jié),40分鐘 1.1 Node.js簡介 3 1.1.1 Web和互聯(lián)網(wǎng) 3 1.1.2 V8引擎和Node.js 4 1.1.3 Node.js的優(yōu)缺點 5 1.2 Node.js的下載與安裝 5 1.2.1 下載并安裝Node.js 5 1.2.2 測試Node.js是否安裝成功 10 1.3 WebStorm開發(fā)環(huán)境的下載與安裝 10 1.3.1 WebStorm的下載 10 1.3.2 WebStorm的安裝 11 1.4 第一個Node.js服務器程序 14 1.4.1 WebStorm首次加載配置 14 1.4.2 使用WebStorm創(chuàng)建第一個Node.js程序 16 1.4.3 在WebStorm中運行Node.js程序 19 1.4.4 使用cmd命令運行Node.js程序 20 1.5 熟悉WebStorm開發(fā)環(huán)境 21 1.5.1 WebStorm功能區(qū)預覽 21 1.5.2 WebStorm中英文對照菜單 21 1.5.3 常用工具欄 23 1.5.4 常用快捷鍵 23 1.5.5 WebStorm常用技巧 24 本章知識思維導圖 25 第2章 JavaScript基礎 26 視頻講解:9節(jié),169分鐘 2.1 JavaScript概述 27 2.1.1 Node.js與JavaScript 27 2.1.2 什么是JavaScript語言 27 2.1.3 為什么學習JavaScript語言 27 2.1.4 JavaScript的應用 28 2.2 JavaScript在HTML中的使用 29 2.2.1 在頁面中直接嵌入JavaScript代碼 30 [實例2.1] 編寫第一個JavaScript程序 31 2.2.2 鏈接外部JavaScript文件 32 [實例2.2] 調用外部JavaScript文件 33 2.2.3 作為標簽的屬性值使用 34 2.3 JavaScript基本語法規(guī)則 34 2.4 JavaScript數(shù)據(jù)類型 36 2.4.1 數(shù)值型 36 2.4.2 字符串型 38 [實例2.3] 輸出前NBA球星奧尼爾的中文名、英文名和別名 40 2.4.3 布爾值和特殊數(shù)據(jù)類型 41 2.5 JavaScript流程控制 41 2.5.1 條件判斷語句 41 [實例2.4] 判斷2021年的2月份有多少天 44 [實例2.5] 判斷學生的成績等級 45 2.5.2 循環(huán)控制語句 45 2.6 JavaScript函數(shù) 47 2.6.1 函數(shù)的定義 48 2.6.2 函數(shù)的調用 48 [實例2.6] 為商城中“加入購物車”按鈕添加單擊事件 50 2.7 DOM文檔對象模型 51 2.7.1 DOM概述 51 2.7.2 DOM對象節(jié)點屬性 53 2.7.3 DOM對象的應用 53 [實例2.7] 實現(xiàn)電影圖片的輪換效果 54 2.8 Document文檔對象 54 2.8.1 Document文檔對象介紹 54 2.8.2 Document文檔對象的常用屬性 55 2.8.3 Document文檔對象的常用方法 55 2.8.4 設置文檔前景色和背景色 56 [實例2.8] 動態(tài)改變文檔的前景色和背景色 56 2.8.5 設置動態(tài)標題欄 57 [實例2.9] 實現(xiàn)動態(tài)標題欄 57 2.8.6 在文檔中輸出數(shù)據(jù) 58 [實例2.10] 對比write()方法和writeln()方法 58 2.8.7 獲取文本框并修改其內容 59 [實例2.11] 獲取文本框并修改其內容 59 2.9 Window對象 59 2.9.1 Window對象的屬性 60 2.9.2 Window對象的方法 60 2.9.3 Window對象的使用 61 本章知識思維導圖 62 第3章 npm包管理器 63 視頻講解:1節(jié),9分鐘 3.1 npm包管理器簡介 64 3.1.1 npm簡介 64 3.1.2 npm的版本 64 3.1.3 npm常見軟件包 65 3.2 package.json基礎 67 3.2.1 認識package.json 67 3.2.2 npm中的package-lock.json文件 69 3.3 使用npm包管理器安裝包 71 3.3.1 安裝單個軟件包 71 3.3.2 安裝npm包的指定版本 72 3.3.3 安裝所有軟件包 73 3.3.4 更新軟件包 74 3.3.5 指定npm軟件包的安裝位置 75 3.3.6 卸載npm軟件包 76 3.4 使用npm安裝的軟件包 76 [實例3.1] 使用npm安裝的軟件包 76 本章知識思維導圖 77 第4章 Node.js基礎 78 視頻講解:4節(jié),46分鐘 4.1 Node.js全局對象 79 4.1.1 全局變量 79 4.1.2 全局對象 79 [實例4.1] argv屬性和exit()方法的初級使用 82 4.1.3 全局函數(shù) 84 4.2 模塊化編程 85 4.2.1 exports 對象 86 [實例4.2] 計算絕對值與圓的周長 86 4.2.2 module 對象 86 [實例4.3] 使用module模塊實現(xiàn)向2021年問好 87 4.3 node.js常用工具——util模塊 87 4.3.1 轉換異步函數(shù)的風格 88 4.3.2 實現(xiàn)對象間的原型繼承 88 4.3.3 將對象轉換為字符串 89 4.3.4 格式化輸出字符串 90 4.3.5 將異步回調方法變成返回Promise實例的方法 91 4.3.6 判斷是否為指定類型的內置對象 91 4.4 常用內置模塊 94 4.4.1 url模塊 95 4.4.2 Query String模塊 95 4.4.3 crypto模塊 96 [實例4.4] 使用crypto模塊生成Hash密碼 96 本章知識思維導圖 97 第2篇 Node.js核心模塊篇 第5章 http模塊 100 視頻講解:4節(jié),41分鐘 5.1 Web應用服務 101 5.1.1 請求與響應 101 5.1.2 客戶端與服務器端 102 5.2 server對象 103 5.2.1 server對象中的方法 103 5.2.2 server對象中的事件 104 5.3 response對象 105 5.3.1 響應HTML文件 106 [實例5.1] 使用fs模塊將HTML文件返回給客戶端 106 5.3.2 響應多媒體 108 [實例5.2] 實現(xiàn)將圖片和視頻返回客戶端 108 5.3.3 網(wǎng)頁自動跳轉 109 [實例5.3] 實現(xiàn)網(wǎng)頁自動跳轉 109 5.4 request對象 110 5.4.1 GET請求 111 5.4.2 POST請求 112 [實例5.4] 使用POST請求獲取用戶名與密碼 112 本章知識思維導圖 114 第6章 fs文件及文件夾操作模塊 115 視頻講解:3節(jié),48分鐘 6.1 文件基本操作 116 6.1.1 檢查文件是否存在 116 6.1.2 文件讀取 117 [實例6.1] 實現(xiàn)cmd控制臺的歌詞滾動播放器 118 6.1.3 文件寫入 119 [實例6.2] 創(chuàng)建文件并且向文件中寫入內容 120 [實例6.3] 為古詩增加古詩賞析 121 6.1.4 異常處理 121 6.2 文件其他操作 122 6.2.1 截斷文件 122 [實例6.4] 修改文本文件的大小 123 6.2.2 刪除文件 123 [實例6.5] 刪除文件 124 6.2.3 復制文件 124 [實例6.6] 復制文件 124 6.2.4 重命名文件 126 [實例6.7] 批量為文件重命名 126 6.3 目錄常用操作 127 6.3.1 創(chuàng)建目錄 127 [實例6.8] 批量創(chuàng)建文件并放到指定的文件夾中 127 6.3.2 讀取目錄 129 6.3.3 刪除空目錄 129 6.3.4 查看目錄信息 130 6.3.5 獲取目錄的絕對路徑 132 本章知識思維導圖 133 第7章 path路徑操作模塊 134 7.1 絕對路徑和相對路徑 135 [實例7.1] 實現(xiàn)cmd控制臺讀取文件 135 7.2 通過路徑獲取文件詳細信息 136 7.2.1 獲取文件所在目錄 136 7.2.2 獲取文件名 136 7.2.3 獲取擴展名 137 [實例7.2] 通過擴展名判斷文件夾中的圖片文件 137 7.2.4 解析路徑的組成 138 7.2.5 從對象返回路徑字符串 138 [實例7.3] 通過路徑的信息將其轉換為路徑字符串 139 7.2.6 判斷路徑是否為絕對路徑 140 [實例7.4] 判斷并顯示所有的絕對路徑 140 7.3 實現(xiàn)對路徑的解析 141 7.3.1 將路徑解析為絕對路徑 141 [實例7.5] resolve()方法的使用 142 7.3.2 實現(xiàn)將路徑轉換為相對路徑 142 [實例7.6] 將列表中的絕對路徑轉換為相對路徑 142 7.3.3 多路徑的拼接 143 7.3.4 規(guī)范化路徑 144 7.4 path模塊的相關屬性 144 本章知識思維導圖 145 第8章 os操作系統(tǒng)模塊 146 8.1 獲取內存相關信息 147 8.1.1 獲取系統(tǒng)剩余內存 147 8.1.2 獲取系統(tǒng)總內存 147 [實例8.1] 顯示系統(tǒng)的內存使用情況 147 8.2 獲取網(wǎng)絡相關信息 148 8.3 獲取系統(tǒng)相關的目錄 148 8.3.1 獲取用戶主目錄 148 8.3.2 獲取臨時文件夾目錄 149 8.4 通過os模塊獲取系統(tǒng)相關信息 149 [實例8.2] 獲取計算機操作系統(tǒng)的相關信息 151 [實例8.3] 查看計算機的運行時間 152 8.5 os模塊常用屬性 154 本章知識思維導圖 155 第9章 Node.js中的流 156 9.1 流簡介 157 9.1.1 流的基本概念 157 9.1.2 了解Buffe/ 157 9.2 創(chuàng)建可讀流 158 9.2.1 流的讀取模式與狀態(tài) 158 9.2.2 可讀流的相關事件 158 9.2.3 讀取數(shù)據(jù) 159 9.2.4 設置編碼格式 159 9.2.5 暫停流 160 9.2.6 獲取流的運行狀態(tài) 160 9.2.7 銷毀數(shù)據(jù) 161 9.2.8 綁定可寫流至可讀流 161 9.2.9 解綁可寫流 162 9.2.10 可讀流的相關屬性 163 9.3 創(chuàng)建可寫流 163 9.3.1 可寫流的相關事件 163 9.3.2 創(chuàng)建可寫流 163 9.3.3 設置流的編碼方式 164 9.3.4 關閉流 164 9.3.5 銷毀流 165 9.3.6 將數(shù)據(jù)緩沖到內存 166 9.3.7 輸出緩沖后的數(shù)據(jù) 166 9.3.8 可寫流的相關屬性 167 9.4 雙工流與轉換流 168 9.4.1 雙工流的使用 168 9.4.2 轉換流的使用 168 9.5 使用流操作文件 169 9.5.1 創(chuàng)建文件可讀流 169 [實例9.1] 讀取文件的指定內容 169 9.5.2 創(chuàng)建文件可寫流 170 [實例9.2] 使用可寫流為文件追加內容 170 本章知識思維導圖 171 第10章 socket.io模塊 172 10.1 socket.io模塊基本操作 173 10.1.1 創(chuàng)建WebSocket服務器 173 10.1.2 創(chuàng)建WebSocket客戶端 174 10.1.3 創(chuàng)建WebSocket事件 175 [實例10.1] 實現(xiàn)服務器端與客戶端之間的通信 175 10.2 socket通信的類型 177 10.2.1 public通信類型 177 [實例10.2] 使用socket發(fā)布一則通知 178 10.2.2 broadcast通信類型 180 [實例10.3] 實現(xiàn)群發(fā)消息功能 180 10.2.3 private通信類型 182 [實例10.4] 實現(xiàn)與好友聊天功能 182 10.3 將客戶端分組 185 [實例10.5] 實現(xiàn)進群通知和退群通知 186 10.4 項目實戰(zhàn)——聊天室 188 [實例10.6] 制作簡單聊天室 188 10.4.1 服務器端代碼實現(xiàn) 189 10.4.2 客戶端代碼實現(xiàn) 190 10.4.3 執(zhí)行項目 191 本章知識思維導圖 192 第3篇 異步編程與事件篇 第11章 異步編程與回調 194 11.1 同步和異步 195 11.2 回調函數(shù) 196 [實例11.1] 回調函數(shù)的簡單應用 197 [實例11.2] 異步調用回調函數(shù) 197 11.3 使用async/await的異步回調 198 11.3.1 Promise基礎 199 11.3.2 為什么使用async/await 199 11.3.3 async/await的使用 200 [實例11.3] 使用async/await執(zhí)行異步回調 200 11.3.4 使用async/await異步回調的優(yōu)點 201 本章知識思維導圖 202 第12章 事件的監(jiān)聽與觸發(fā) 203 12.1 EventEmitter對象 204 [實例12.1] 使用EventEmitter創(chuàng)建簡單事件 204 [實例12.2] 演示項目中監(jiān)聽事件的添加與觸發(fā) 205 12.2 添加和觸發(fā)監(jiān)聽事件 205 12.2.1 添加監(jiān)聽事件 206 12.2.2 添加單次監(jiān)聽事件 207 [實例12.3] 使用emit方法觸發(fā)事件 208 12.2.3 觸發(fā)監(jiān)聽事件 208 [實例12.4] 使用emit方法觸發(fā)事件 208 [實例12.5] 觸發(fā)帶參數(shù)的監(jiān)聽事件 209 12.3 刪除監(jiān)聽事件 209 [實例12.6] 刪除指定的監(jiān)聽事件 210 本章知識思維導圖 211 第13章 程序調試與異常處理 212 13.1 使用console.log()調試程序 213 13.2 使用WebStorm調試程序 213 13.2.1 插入斷點 214 13.2.2 刪除斷點 214 13.2.3 禁用斷點 214 13.2.4 斷點調試 215 13.3 Node.js程序異常處理 216 13.3.1 使用throw關鍵字拋出異常 216 13.3.2 Error錯誤對象 217 13.3.3 使用try…catch捕獲異常 218 13.4 異步程序中的異常處理 219 本章知識思維導圖 221 第4篇 框架及數(shù)據(jù)應用篇 第14章 express模塊基礎 224 14.1 認識 express模塊 225 14.1.1 創(chuàng)建Web服務器 225 14.1.2 express模塊中的響應對象 225 [實例14.1] 實現(xiàn)向客戶端響應數(shù)組信息 226 14.1.3 express模塊中的請求對象 227 [實例14.2] 判斷當前請求用戶使用瀏覽器的類型 227 14.2 express模塊中的中間件 228 14.2.1 什么是中間件 228 14.2.2 router中間件 230 14.2.3 static中間件 231 [實例14.3] 實現(xiàn)向客戶端返回圖片 232 14.2.4 cookie parser中間件 232 14.2.5 body parser中間件 233 [實例14.4] 使用中間件實現(xiàn)登錄驗證功能 233 14.3 實現(xiàn)RESTful Web服務 235 [實例14.5] 實現(xiàn)用戶信息的RESTful服務 236 14.3.1 創(chuàng)建數(shù)據(jù)庫 236 14.3.2 實現(xiàn)GET請求 238 14.3.3 實現(xiàn)POST請求 238 [實例14.6] 實現(xiàn)JSON文件的RESTful Web 服務 240 本章知識思維導圖 241 第15章 express高級應用之express-generato/ 242 15.1 認識 express-generator框架 243 15.1.1 創(chuàng)建項目 243 15.1.2 設置項目參數(shù) 245 15.2 express-generator的初體驗 246 [實例15.1] 實現(xiàn)登錄和退出功能 246 15.3 項目實戰(zhàn)——選座購票 250 [實例15.2] 實現(xiàn)選座購票的功能 250 15.3.1 服務器端代碼實現(xiàn) 251 15.3.2 客戶端代碼實現(xiàn) 252 15.3.3 執(zhí)行項目 253 本章知識思維導圖 254 第16章 Web開發(fā)中的模板引擎 255 16.1 ejs模塊 256 16.1.1 ejs模塊的渲染方法 256 [實例16.1] ejs初體驗:使用ejs模板進行渲染 257 [實例16.2] 給客戶端返回軌道交通信息 258 16.1.2 ejs模塊的數(shù)據(jù)傳遞 260 [實例16.3] 返回美團外賣單據(jù) 260 16.2 pug模塊 262 16.2.1 pug模塊的渲染方法 262 [實例16.4] 模擬獲取消費券頁面 264 16.2.2 pug模塊的數(shù)據(jù)傳遞 265 [實例16.5] 月度消費賬單提醒 265 本章知識思維導圖 267 第17章 Node.js與MySQL數(shù)據(jù)庫 268 17.1 MySQL 數(shù)據(jù)庫的下載、安裝及配置使用 269 17.1.1 數(shù)據(jù)庫簡介 269 17.1.2 下載MySQL 269 17.1.3 安裝MySQL 270 17.1.4 配置MySQL環(huán)境變量 276 17.1.5 啟動MySQL 278 17.1.6 使用Navicat foMySQL管理軟件 278 17.2 MySQL數(shù)據(jù)庫操作基礎 279 17.2.1 認識SQL語言 279 17.2.2 數(shù)據(jù)庫操作 280 17.2.3 數(shù)據(jù)表操作 282 17.2.4 數(shù)據(jù)操作 285 17.3 在Node.js中操作MySQL數(shù)據(jù)庫 289 17.3.1 mysql模塊的基本操作 289 [實例17.1] 連接數(shù)據(jù)庫并查詢數(shù)據(jù) 290 17.3.2 Node.js中對MySQL數(shù)據(jù)庫實現(xiàn)增刪改查操作 293 [實例17.2] 小型圖書管理系統(tǒng) 293 本章知識思維導圖 300 第18章 Node.js與MongoDB數(shù)據(jù)庫 301 18.1 認識MongoDB數(shù)據(jù)庫 302 18.1.1 關系型數(shù)據(jù)庫與非關系型數(shù)據(jù)庫 302 18.1.2 下載MongoDB數(shù)據(jù)庫 303 18.1.3 安裝MongoDB數(shù)據(jù)庫 304 18.1.4 配置并測試MongoDB數(shù)據(jù)庫 307 18.2 MongoDB數(shù)據(jù)庫基礎 309 18.2.1 使用JavaScript語言 309 18.2.2 數(shù)據(jù)庫、集合與文檔 310 18.2.3 添加數(shù)據(jù) 311 18.2.4 查詢數(shù)據(jù) 311 18.2.5 修改數(shù)據(jù) 313 18.2.6 刪除數(shù)據(jù) 313 18.3 項目實戰(zhàn)——心情日記 313 [實例18.1] 制作網(wǎng)站心情日記 313 18.3.1 初始化數(shù)據(jù) 314 18.3.2 主頁的實現(xiàn) 315 18.3.3 添加日記 316 18.3.4 修改日記 317 18.3.5 刪除日記 319 18.3.6 用戶登錄與登出 319 本章知識思維導圖 321 第5篇 項目開發(fā)篇 第19章 網(wǎng)絡版五子棋游戲 324 視頻講解:6節(jié),33分鐘 19.1 需求分析 325 19.2 游戲設計 325 19.2.1 游戲功能結構 325 19.2.2 游戲業(yè)務流程 326 19.2.3 游戲預覽 326 19.3 游戲開發(fā)準備 327 19.3.1 游戲開發(fā)環(huán)境 327 19.3.2 游戲項目構成 328 19.4 登錄游戲房間設計 328 19.4.1 登錄游戲房間概述 328 19.4.2 登錄游戲房間的實現(xiàn) 329 19.5 游戲玩家列表設計 330 19.5.1 游戲玩家列表概述 330 19.5.2 游戲玩家列表的實現(xiàn) 330 19.6 游戲對戰(zhàn)設計 332 19.6.1 游戲對戰(zhàn)概述 332 19.6.2 游戲對戰(zhàn)頁面初始化 332 19.6.3 繪制棋盤 334 19.6.4 游戲算法及勝負判定 336 19.6.5 重新開始游戲 337 19.6.6 更改棋盤顏色 338 本章知識思維導圖 339 第20章 全棧博客網(wǎng) 340 視頻講解:7節(jié),67分鐘 20.1 需求分析 341 20.2 項目設計 341 20.2.1 功能結構 341 20.2.2 業(yè)務流程 341 20.2.3 項目預覽 342 20.3 項目開發(fā)準備 343 20.3.1 項目開發(fā)環(huán)境 343 20.3.2 文件夾組織結構 344 20.4 注冊頁面設計 345 20.4.1 注冊頁面概述 345 20.4.2 頂部區(qū)和底部區(qū)功能的實現(xiàn) 345 20.4.3 注冊功能的實現(xiàn) 348 20.5 登錄頁面設計 350 20.5.1 登錄頁面概述 350 20.5.2 登錄功能的實現(xiàn) 351 20.6 文章功能模塊設計 353 20.6.1 文章功能模塊概述 353 20.6.2 發(fā)表文章功能的實現(xiàn) 354 20.6.3 個人主頁的實現(xiàn) 356 20.6.4 修改文章功能的實現(xiàn) 358 20.6.5 刪除文章功能的實現(xiàn) 360 20.7 留言功能設計 361 20.7.1 留言功能概述 361 20.7.2 留言功能的實現(xiàn) 361 本章知識思維導圖 364
你還可能感興趣
我要評論
|