node.js開發指南(2020年人民郵電出版社出版的圖書)

node.js開發指南(2020年人民郵電出版社出版的圖書)

本詞條是多義詞,共2個義項
更多義項 ▼ 收起列表 ▲

《node.js開發指南》是2020年人民郵電出版社出版的圖書。本書講解與示例並重,由淺入深地剖析了Node.js模組與語言原理,並通過各種實際場景下的用例來引導讀者進行思考,使讀者在學習程式語言的同時增進對語言本身的了解。

基本介紹

內容簡介,圖書目錄,作者簡介,

內容簡介

本書跟隨了Node.js的標準與行業的發展趨勢,在介紹新標準與新技術的同時兼顧了理論基礎和實際套用,主要內容分為基礎和套用兩部分,基礎部分內容包含了Node.js環境配置,npm項目管理,JavaScript語法基礎,Node.js基本模組的原理與使用,異步代碼的編寫與組織,套用部分包含了網路編程,桌面套用開發以及測試和調試。
本書講解與示例並重,由淺入深地剖析了Node.js模組與語言原理,並通過各種實際場景下的用例來引導讀者進行思考,使讀者在學習程式語言的同時增進對語言本身的了解。
本書適用於高等院校計算機相關課程作為基礎教材使用,也可以供對Node.js語言感興趣的讀者自學使用。

圖書目錄

第1章 概述 1
1.1 了解Node.js 1
1.2 安裝 1
1.2.1 原始碼安裝 2
1.2.2 驗證安裝 2
1.3 hello world 3
1.4 其他準備工作 3
1.4.1 準備一個開發環境 4
1.4.2 準備一份原始碼 4
1.4.3 準備一個類Linux環境 4
1.4.4 熟悉控制台 4
1.4.5 準備一份文檔 5
第2章 了解npm 6
2.1 package.json 7
2.1.1 生成package.json 7
2.1.2 第三方模組 8
2.2 使用npm install 8
2.3 node_modules 10
2.4 控制模組版本 11
2.4.1 子模組的版本 12
2.4.2 package-lock.json 12
2.5 使用npm構建項目 13
2.6 關於版本升級 15
小結 15
思考與問題 16
第3章 JavaScript核心 17
3.1 基本類型 18
3.1.1 布爾值 18
3.1.2 數字 19
3.1.3 字元串 19
3.1.4 正則表達式 21
3.1.5 比較相等 23
3.2 數據結構 24
3.2.1 數組 24
3.2.2 TypedArray 28
3.2.3 棧 29
3.2.4 鍊表 29
3.2.5 二叉樹 30
3.2.6 Set 31
3.2.7 Map 32
3.3 變數與作用域 33
3.3.1 聲明變數 33
3.3.2 變數提升 34
3.3.3 作用域 36
3.3.4 this 37
3.4 函式 37
3.4.1 箭頭函式 37
3.4.2 覆蓋原生函式 38
3.4.3 閉包 39
3.4.4 函式式編程 40
3.5 對象 45
3.5.1 創建對象 45
3.5.2 Symbol屬性 47
3.5.3 對象遍歷器 48
3.6 類與繼承 51
3.6.1 定義一個類 51
3.6.2 繼承 52
3.7 實戰:編寫位元組碼執行器 53
3.7.1 指令集 53
3.7.2 編寫執行器 56
小結 59
思考與問題 59
第4章 編寫結構化程式 60
4.1 module 63
4.1.1 哪些模組需要引入 64
4.1.2 require()及其運行機制 64
4.1.3 ES6 module 67
4.2 process 67
4.2.1 屬性和方法 67
4.2.2 預定義事件 69
4.3 Events 70
4.3.1 使用 70
4.3.2 事件監聽的實現原理 70
4.3.3 繼承Events模組 71
4.4 檔案系統 71
4.4.1 源碼實現 71
4.4.2 檔案系統API 72
4.4.3 同步和異步 74
4.4.4 關於檔案路徑 75
4.5 Stream 76
4.5.1 流式數據 76
4.5.2 Stream API 77
4.5.3 可讀流 77
4.5.4 可寫流 79
4.5.5 和檔案系統API的比較 82
4.6 Child Process 84
4.6.1 spawn() 84
4.6.2 fork() 85
4.7 處理CPU密集型任務 87
4.8 實戰:控制CPU占用曲線 89
4.8.1 單核環境 90
4.8.2 適應多核 91
4.8.3 精準控制 92
4.8.4 獲取CPU占用率 94
4.9 C 擴展 95
4.9.1 V8 API 96
4.9.2 N-API 98
4.9.3 封裝bitset 99
4.9.4 封裝sleep函式 102
小結 104
思考與問題 104
第5章 組織異步代碼 105
5.1 回調函式 106
5.1.1 回調函式的執行過程 106
5.1.2 回調的返回值 106
5.2 Promise 107
5.2.1 什麼是Promise 108
5.2.2 then 109
5.2.3 使用Promise處理異步任務 110
5.2.4 使用Promise封裝現有方法 114
5.2.5 運行多個Promise 115
5.2.6 更多API 118
5.3 async await 118
5.3.1 背景 118
5.3.2 async函式 119
5.3.3 await關鍵字 119
5.3.4 錯誤處理 121
5.3.5 循環中的async 121
5.3.6 事件循環與async 122
5.4 動手實現Promise 122
5.4.1 從外到內 122
5.4.2 適應異步過程 123
5.4.3 實現鏈式調用 124
5.4.4 連續異步操作 126
小結 128
思考與問題 128
第6章 Web套用 129
6.1 Web伺服器 129
6.1.1 使用HTTP模組 130
6.1.2 server request response 131
6.1.3 處理HTTP請求 135
6.1.4 模板引擎與頁面渲染 140
6.1.5 資料庫的互動 143
6.2 使用express 144
6.2.1 基本概念 145
6.2.2 靜態檔案服務 148
6.2.3 路由服務 148
6.2.4 中間件系統 150
6.2.5 迷你express 154
6.2.6 cookie 156
6.2.7 session 158
6.2.8 OAuth 161
6.2.9 與前端套用的整合 165
6.2.10 提高伺服器性能 167
6.3 集群和進程管理 169
6.3.1 使用Cluster模組 169
6.3.2 負載均衡 171
6.3.3 伺服器安全 173
6.4 HTTPS 175
6.4.1 對稱加密和非對稱加密 176
6.4.2 升級HTTPS伺服器 177
6.5 全雙工通信 177
6.5.1 輪詢和長連線 177
6.5.2 使用WebSocket 178
6.5.3 WebSocket握手 179
6.5.4 HTTP 2 180
6.6 HTTP客戶端 181
6.7 API文檔 183
6.7.1 Swagger UI 183
6.7.2 API描述檔案 184
小結 186
思考與問題 187
第7章 圖形化套用 188
7.1 桌面套用 188
7.1.1 Java Swing 188
7.1.2 WPF 189
7.1.3 Qt 190
7.2 Electron 190
7.2.1 快速開始 191
7.2.2 頁面和後台的互動 194
7.2.3 實現選單欄 195
7.2.4 多視窗管理 199
小結 200
思考與問題 200
第8章 測試與調試 201
8.1 測試框架 201
8.1.1 斷言系統 201
8.1.2 使用jasmine 202
8.1.3 覆蓋率測試 208
8.1.4 壓力測試 209
8.2 調試 210
8.2.1 調試Node代碼 211
8.2.2 調試C 原始碼 211
8.2.3 CPU profile 212
小結 215
思考與問題 215
附錄A 基礎概念 216
A.1 程式語言和運行時 216
A.1.1 程式語言的產生 217
A.1.2 什麼是運行時 217
A.1.3 為什麼是JavaScript 217
A.1.4 編譯Node源碼 217
A.1.5 Node架構 218
A.1.6 js2c 220
A.2 關於作業系統 221
A.2.1 進程和執行緒 221
A.2.2 理解高並發 222
A.2.3 理解非阻塞 222
A.3 事件循環 222
A.3.1 各階段概述 223
A.3.2 阻塞事件循環 224
A.3.3 process.nextTick 225
A.3.4 模擬事件循環 227
A.3.5 microTask 和macroTask task 228
附錄B 網路通信基礎 232
B.1 發生了什麼 232
B.1.1 定址 232
B.1.2 建立連線 232
B.1.3 通信 233
B.2 socket接口 233
B.2.1 創建socket 234
B.2.2 建立連線 234
B.2.3 接收訊息 234
B.3 socket與並發 234
B.3.1 select和poll 235
B.3.2 epoll 236
附錄C Node和其他語言的比較 237
C.1 面向對象 237
C.2 C語言中的Stream 238
C.3 關於I O的處理 239
C.4 C# Task 239
附錄D Docker 241
D.1 容器技術 241
D.1.1 鏡像 241
D.1.2 容器與鏡像 242
D.1.3 運行 242
D.2 運行MySQL 243
D.3 使用MongoDB 243
D.4 Dockerfile 244

作者簡介

李鍇,畢業於廈門大學軟體學院,目前任職於花旗集團,從事Web前端開發工作。喜歡鑽研前沿技術,熱愛技術分享,自2014年接觸Node以來,使用Node.js完成了多箇中小型套用的開發,並且願意將Node.js技術分享給更多人。

相關詞條

熱門詞條

聯絡我們