從零開始學 Node.js

明日科技 編著

  • 出版商: 化學工業
  • 出版日期: 2022-09-01
  • 售價: $594
  • 貴賓價: 9.5$564
  • 語言: 簡體中文
  • 頁數: 364
  • 裝訂: 平裝
  • ISBN: 7122413268
  • ISBN-13: 9787122413260
  • 相關分類: Node.js
  • 立即出貨 (庫存 < 4)

買這商品的人也買了...

商品描述

本書從零基礎讀者的角度出發,通過通俗易懂的語言、豐富多彩的實例,
循序漸進地讓讀者在實踐中學習Node.js編程知識,並提升自己的實際開發能力。
全書共分為5篇20章,內容包括初識Node.js、JavaScript基礎、npm包管理器、Node.js基礎、http模塊、
fs文件及文件夾操作模塊、path路徑操作模塊、os系統模塊、Node.js中的流、socket.io模塊、
異步編程與回調、事件的監聽與觸發、程序調試與異常處理、express模塊基礎、express高級應用之express-penerator、
Web開發中的模板引擎、Node.js與MySQL數據庫、Node.js與MongoDB數據庫、網絡版五子棋遊戲、全棧博客網等。
書中知識點講解細緻,側重介紹每個知識點的使用場景,涉及的代碼給出了詳細的註釋,
可以使讀者輕鬆領會Node.js程序開發的精髓,快速提高開發技能。
同時,本書配套了大量教學視頻,掃碼即可觀看,還提供所有程序源文件,方便讀者實踐。
本書適合Node.js初學者、軟件開發入門者自學使用,也可用作高等院校相關專業的教材及參考書。

作者簡介

明日科技
是國內領先的編程學習資源提供商,目前已出版圖書500多個品種,主要有《程序開發範例寶典》《軟件開發視頻大講堂》
《軟件開發1200例》《零基礎學系列》《項目開發實戰入門》等系列產品,其中60多個品種版權輸出台灣地區,
多個品種榮獲“全行業優秀暢銷書”獎項,《軟件開發視頻大講堂》
《零基礎學系列》系列是目前市場上暢銷的專業基礎編程類叢書。

目錄大綱

第1篇Node.js基礎篇
第1章初識Node.js 2 視頻講解:5節,40分鐘
1.1 Node.js簡介3
1.1.1 Web和互聯網3
1.1.2 V8引擎和Node.js 4
1.1.3 Node.js的優缺點5
1.2 Node.js的下載與安裝5
1.2.1 下載並安裝Node.js 5
1.2.2 測試Node.js是否安裝成功10
1.3 WebStorm開發環境的下載與安裝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創建第一個Node.js程序16
1.4.3 在WebStorm中運行Node.js程序19
1.4.4 使用cmd命令運行Node.js程序20
1.5 熟悉WebStorm開發環境21
1.5.1 WebStorm功能區預覽21
1.5.2 WebStorm中英文對照菜單21
1.5.3 常用工具欄23
1.5.4 常用快捷鍵23
1.5.5 WebStorm常用技巧24
本章知識思維導圖25

第2章JavaScript基礎26 視頻講解:9節,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基本語法規則34
2.4 JavaScript數據類型36
2.4.1 數值型36
2.4.2 字符串型38
[實例2.3] 輸出前NBA球星奧尼爾的中文名、英文名和別名40
2.4.3 布爾值和特殊數據類型41
2.5 JavaScript流程控制41
2.5.1 條件判斷語句41
[實例2.4] 判斷2021年的2月份有多少天44
[實例2.5] 判斷學生的成績等級45
2.5.2 循環控制語句45
2.6 JavaScript函數47
2.6.1 函數的定義48
2.6.2 函數的調用48
[實例2.6] 為商城中“加入購物車”按鈕添加單擊事件50
2.7 DOM文檔對像模型51
2.7.1 DOM概述51
2.7.2 DOM對象節點屬性53
2.7.3 DOM對象的應用53
[實例2.7] 實現電影圖片的輪換效果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] 動態改變文檔的前景色和背景色56
2.8.5 設置動態標題欄57
[實例2.9] 實現動態標題欄57
2.8.6 在文檔中輸出數據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節,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節,46分鐘
4.1 Node.js全局對象79
4.1.1 全局變量79
4.1.2 全局對象79
[實例4.1] argv屬性和exit()方法的初級使用82
4.1.3 全局函數84
4.2 模塊化編程85
4.2.1 exports 對象86
[實例4.2] 計算絕對值與圓的周長86
4.2.2 module 對象86
[實例4.3] 使用module模塊實現向2021年問好87
4.3 node.js常用工具——util模塊87
4.3.1 轉換異步函數的風格88
4.3.2 實現對象間的原型繼承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節,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] 實現將圖片和視頻返回客戶端108
5.3.3 網頁自動跳轉109
[實例5.3] 實現網頁自動跳轉109
5.4 request對象110
5.4.1 GET請求111
5.4.2 POST請求112
[實例5.4] 使用POST請求獲取用戶名與密碼112
本章知識思維導圖114

第6章fs文件及文件夾操作模塊115 視頻講解:3節,48分鐘
6.1 文件基本操作116
6.1.1 檢查文件是否存在116
6.1.2 文件讀取117
[實例6.1] 實現cmd控制台的歌詞滾動播放器118
6.1.3 文件寫入119
[實例6.2] 創建文件並且向文件中寫入內容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 創建目錄127
[實例6.8] 批量創建文件並放到指定的文件夾中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] 實現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 實現對路徑的解析141
7.3.1 將路徑解析為絕對路徑141
[實例7.5] resolve()方法的使用142
7.3.2 實現將路徑轉換為相對路徑142
[實例7.6] 將列表中的絕對路徑轉換為相對路徑142
7.3.3 多路徑的拼接143
7.3.4 規範化路徑144
7.4 path模塊的相關屬性144
本章知識思維導圖145

第8章os操作系統模塊146
8.1 獲取內存相關信息147
8.1.1 獲取系統剩餘內存147
8.1.2 獲取系統總內存147
[實例8.1] 顯示系統的內存使用情況147
8.2 獲取網絡相關信息148
8.3 獲取系統相關的目錄148
8.3.1 獲取用戶主目錄148
8.3.2 獲取臨時文件夾目錄149
8.4 通過os模塊獲取系統相關信息149
[實例8.2] 獲取計算機操作系統的相關信息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 創建可讀流158
9.2.1 流的讀取模式與狀態158
9.2.2 可讀流的相關事件158
9.2.3 讀取數據159
9.2.4 設置編碼格式159
9.2.5 暫停流160
9.2.6 獲取流的運行狀態160
9.2.7 銷毀數據161
9.2.8 綁定可寫流至可讀流161
9.2.9 解綁可寫流162
9.2.10 可讀流的相關屬性163
9.3 創建可寫流163
9.3.1 可寫流的相關事件163
9.3.2 創建可寫流163
9.3.3 設置流的編碼方式164
9.3.4 關閉流164
9.3.5 銷毀流165
9.3.6 將數據緩衝到內存166
9.3.7 輸出緩衝後的數據166
9.3.8 可寫流的相關屬性167
9.4 雙工流與轉換流168
9.4.1 雙工流的使用168
9.4.2 轉換流的使用168
9.5 使用流操作文件169
9.5.1 創建文件可讀流169
[實例9.1] 讀取文件的指定內容169
9.5.2 創建文件可寫流170
[實例9.2] 使用可寫流為文件追加內容170
本章知識思維導圖171

第10章socket.io模塊172
10.1 socket.io模塊基本操作173
10.1.1 創建WebSocket服務器173
10.1.2 創建WebSocket客戶端174
10.1.3 創建WebSocket事件175
[實例10.1] 實現服務器端與客戶端之間的通信175
10.2 socket通信的類型177
10.2.1 public通信類型177
[實例10.2] 使用socket發布一則通知178
10.2.2 broadcast通信類型180
[實例10.3] 實現群發消息功能180
10.2.3 private通信類型182
[實例10.4] 實現與好友聊天功能182
10.3 將客戶端分組185
[實例10.5] 實現進群通知和退群通知186
10.4 項目實戰——聊天室188
[實例10.6] 製作簡單聊天室188
10.4.1 服務器端代碼實現189
10.4.2 客戶端代碼實現190
10.4.3 執行項目191
本章知識思維導圖192

第3篇異步編程與事件篇
第11章異步編程與回調194
11.1 同步和異步195
11.2 回調函數196
[實例11.1] 回調函數的簡單應用197
[實例11.2] 異步調用回調函數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執行異步回調200
11.3.4 使用async/await異步回調的優點201
本章知識思維導圖202

第12章事件的監聽與觸發203
12.1 EventEmitter對象204
[實例12.1] 使用EventEmitter創建簡單事件204
[實例12.2] 演示項目中監聽事件的添加與觸發205
12.2 添加和触發監聽事件205
12.2.1 添加監聽事件206
12.2.2 添加單次監聽事件207
[實例12.3] 使用emit方法觸發事件208
12.2.3 觸發監聽事件208
[實例12.4] 使用emit方法觸發事件208
[實例12.5] 觸髮帶參數的監聽事件209
12.3 刪除監聽事件209
[實例12.6] 刪除指定的監聽事件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篇框架及數據應用篇
第14章express模塊基礎224
14.1 認識express模塊225
14.1.1 創建Web服務器225
14.1.2 express模塊中的響應對象225
[實例14.1] 實現向客戶端響應數組信息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] 實現向客戶端返回圖片232
14.2.4 cookie parser中間件232
14.2.5 body parser中間件233
[實例14.4] 使用中間件實現登錄驗證功能233
14.3 實現RESTful Web服務235
[實例14.5] 實現用戶信息的RESTful服務236
14.3.1 創建數據庫236
14.3.2 實現GET請求238
14.3.3 實現POST請求238
[實例14.6] 實現JSON文件的RESTful Web 服務240
本章知識思維導圖241

第15章express高級應用之express-generato/ 242
15.1 認識express-generator框架243
15.1.1 創建項目243
15.1.2 設置項目參數245
15.2 express-generator的初體驗246
[實例15.1] 實現登錄和退出功能246
15.3 項目實戰——選座購票250
[實例15.2] 實現選座購票的功能250
15.3.1 服務器端代碼實現251
15.3.2 客戶端代碼實現252
15.3.3 執行項目253
本章知識思維導圖254

第16章Web開發中的模板引擎255
16.1 ejs模塊256
16.1.1 ejs模塊的渲染方法256
[實例16.1] ejs初體驗:使用ejs模板進行渲染257
[實例16.2] 給客戶端返回軌道交通信息258
16.1.2 ejs模塊的數據傳遞260
[實例16.3] 返回美團外賣單據260
16.2 pug模塊262
16.2.1 pug模塊的渲染方法262
[實例16.4] 模擬獲取消費券頁面264
16.2.2 pug模塊的數據傳遞265
[實例16.5] 月度消費賬單提醒265
本章知識思維導圖267

第17章Node.js與MySQL數據庫268
17.1 MySQL 數據庫的下載、安裝及配置使用269
17.1.1 數據庫簡介269
17.1.2 下載MySQL 269
17.1.3 安裝MySQL 270
17.1.4 配置MySQL環境變量276
17.1.5 啟動MySQL 278
17.1.6 使用Navicat foMySQL管理軟件278
17.2 MySQL數據庫操作基礎279
17.2.1 認識SQL語言279
17.2.2 數據庫操作280
17.2.3 數據表操作282
17.2.4 數據操作285
17.3 在Node.js中操作MySQL數據庫289
17.3.1 mysql模塊的基本操作289
[實例17.1] 連接數據庫並查詢數據290
17.3.2 Node.js中對MySQL數據庫實現增刪改查操作293
[實例17.2] 小型圖書管理系統293
本章知識思維導圖300

第18章Node.js與MongoDB數據庫301
18.1 認識MongoDB數據庫302
18.1.1 關係型數據庫與非關係型數據庫302
18.1.2 下載MongoDB數據庫303
18.1.3 安裝MongoDB數據庫304
18.1.4 配置並測試MongoDB數據庫307
18.2 MongoDB數據庫基礎309
18.2.1 使用JavaScript語言309
18.2.2 數據庫、集合與文檔310
18.2.3 添加數據311
18.2.4 查詢數據311
18.2.5 修改數據313
18.2.6 刪除數據313
18.3 項目實戰——心情日記313
[實例18.1] 製作網站心情日記313
18.3.1 初始化數據314
18.3.2 主頁的實現315
18.3.3 添加日記316
18.3.4 修改日記317
18.3.5 刪除日記319
18.3.6 用戶登錄與登出319
本章知識思維導圖321

第5篇項目開發篇
第19章網絡版五子棋遊戲324 視頻講解:6節,33分鐘
19.1 需求分析325
19.2 遊戲設計325
19.2.1 遊戲功能結構325
19.2.2 遊戲業務流程326
19.2.3 遊戲預覽326
19.3 遊戲開發準備327
19.3.1 遊戲開發環境327
19.3.2 遊戲項目構成328
19.4 登錄遊戲房間設計328
19.4.1 登錄遊戲房間概述328
19.4.2 登錄遊戲房間的實現329
19.5 遊戲玩家列表設計330
19.5.1 遊戲玩家列表概述330
19.5.2 遊戲玩家列表的實現330
19.6 遊戲對戰設計332
19.6.1 遊戲對戰概述332
19.6.2 遊戲對戰頁面初始化332
19.6.3 繪製棋盤334
19.6.4 遊戲算法及勝負判定336
19.6.5 重新開始遊戲337
19.6.6 更改棋盤顏色338
本章知識思維導圖339

第20章全棧博客網340 視頻講解:7節,67分鐘
20.1 需求分析341
20.2 項目設計341
20.2.1 功能結構341
20.2.2 業務流程341
20.2.3 項目預覽342
20.3 項目開發準備343
20.3.1 項目開發環境343
20.3.2 文件夾組織結構344
20.4 註冊頁面設計345
20.4.1 註冊頁面概述345
20.4.2 頂部區和底部區功能的實現345
20.4.3 註冊功能的實現348
20.5 登錄頁面設計350
20.5.1 登錄頁面概述350
20.5.2 登錄功能的實現351
20.6 文章功能模塊設計353
20.6.1 文章功能模塊概述353
20.6.2 發表文章功能的實現354
20.6.3 個人主頁的實現356
20.6.4 修改文章功能的實現358
20.6.5 刪除文章功能的實現360
20.7 留言功能設計361
20.7.1 留言功能概述361
20.7.2 留言功能的實現361
本章知識思維導圖364