注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)軟件與程序設(shè)計Node.js開發(fā)指南

Node.js開發(fā)指南

Node.js開發(fā)指南

定 價:¥59.80

作 者: 李鍇 著
出版社: 人民郵電出版社
叢編項:
標(biāo) 簽: 暫缺

ISBN: 9787115542373 出版時間: 2020-12-01 包裝: 平裝
開本: 16開 頁數(shù): 244 字?jǐn)?shù):  

內(nèi)容簡介

  本書跟隨了Node.js的標(biāo)準(zhǔn)與行業(yè)的發(fā)展趨勢,在介紹新標(biāo)準(zhǔn)與新技術(shù)的同時兼顧了理論基礎(chǔ)和實際應(yīng)用,主要內(nèi)容分為基礎(chǔ)和應(yīng)用兩部分,基礎(chǔ)部分內(nèi)容包含了Node.js環(huán)境配置,npm項目管理,JavaScript語法基礎(chǔ),Node.js基本模塊的原理與使用,異步代碼的編寫與組織,應(yīng)用部分包含了網(wǎng)絡(luò)編程,桌面應(yīng)用開發(fā)以及測試和調(diào)試。本書講解與示例并重,由淺入深地剖析了Node.js模塊與語言原理,并通過各種實際場景下的用例來引導(dǎo)讀者進(jìn)行思考,使讀者在學(xué)習(xí)編程語言的同時增進(jìn)對語言本身的了解。本書適用于高等院校計算機相關(guān)課程作為基礎(chǔ)教材使用,也可以供對Node.js語言感興趣的讀者自學(xué)使用。

作者簡介

  李鍇,畢業(yè)于廈門大學(xué)軟件學(xué)院,目前任職于花旗集團(tuán),從事Web前端開發(fā)工作。喜歡鉆研前沿技術(shù),熱愛技術(shù)分享,自2014年接觸Node以來,使用Node.js完成了多個中小型應(yīng)用的開發(fā),并且愿意將Node.js技術(shù)分享給更多人。

圖書目錄

第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 其他準(zhǔn)備工作 3
1.4.1 準(zhǔn)備一個開發(fā)環(huán)境 4
1.4.2 準(zhǔn)備一份源代碼 4
1.4.3 準(zhǔn)備一個類Linux環(huán)境 4
1.4.4 熟悉控制臺 4
1.4.5 準(zhǔn)備一份文檔 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構(gòu)建項目 13
2.6 關(guān)于版本升級 15
小結(jié) 15
思考與問題 16
第3章 JavaScript核心 17
3.1 基本類型 18
3.1.1 布爾值 18
3.1.2 數(shù)字 19
3.1.3 字符串 19
3.1.4 正則表達(dá)式 21
3.1.5 比較相等 23
3.2 數(shù)據(jù)結(jié)構(gòu) 24
3.2.1 數(shù)組 24
3.2.2 TypedArray 28
3.2.3 ?!?9
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 函數(shù) 37
3.4.1 箭頭函數(shù) 37
3.4.2 覆蓋原生函數(shù) 38
3.4.3 閉包 39
3.4.4 函數(shù)式編程 40
3.5 對象 45
3.5.1 創(chuàng)建對象 45
3.5.2 Symbol屬性 47
3.5.3 對象遍歷器 48
3.6 類與繼承 51
3.6.1 定義一個類 51
3.6.2 繼承 52
3.7 實戰(zhàn):編寫字節(jié)碼執(zhí)行器 53
3.7.1 指令集 53
3.7.2 編寫執(zhí)行器 56
小結(jié) 59
思考與問題 59
第4章 編寫結(jié)構(gòu)化程序 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 預(yù)定義事件 69
4.3 Events 70
4.3.1 使用 70
4.3.2 事件監(jiān)聽的實現(xiàn)原理 70
4.3.3 繼承Events模塊 71
4.4 文件系統(tǒng) 71
4.4.1 源碼實現(xiàn) 71
4.4.2 文件系統(tǒng)API 72
4.4.3 同步和異步 74
4.4.4 關(guān)于文件路徑 75
4.5 Stream 76
4.5.1 流式數(shù)據(jù) 76
4.5.2 Stream API 77
4.5.3 可讀流 77
4.5.4 可寫流 79
4.5.5 和文件系統(tǒng)API的比較 82
4.6 Child Process 84
4.6.1 spawn() 84
4.6.2 fork() 85
4.7 處理CPU密集型任務(wù) 87
4.8 實戰(zhàn):控制CPU占用曲線 89
4.8.1 單核環(huán)境 90
4.8.2 適應(yīng)多核 91
4.8.3 精準(zhǔn)控制 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函數(shù) 102
小結(jié) 104
思考與問題 104
第5章 組織異步代碼 105
5.1 回調(diào)函數(shù) 106
5.1.1 回調(diào)函數(shù)的執(zhí)行過程 106
5.1.2 回調(diào)的返回值 106
5.2 Promise 107
5.2.1 什么是Promise 108
5.2.2 then 109
5.2.3 使用Promise處理異步任務(wù) 110
5.2.4 使用Promise封裝現(xiàn)有方法 114
5.2.5 運行多個Promise 115
5.2.6 更多API 118
5.3 async/await 118
5.3.1 背景 118
5.3.2 async函數(shù) 119
5.3.3 await關(guān)鍵字 119
5.3.4 錯誤處理 121
5.3.5 循環(huán)中的async 121
5.3.6 事件循環(huán)與async 122
5.4 動手實現(xiàn)Promise 122
5.4.1 從外到內(nèi) 122
5.4.2 適應(yīng)異步過程 123
5.4.3 實現(xiàn)鏈?zhǔn)秸{(diào)用 124
5.4.4 連續(xù)異步操作 126
小結(jié) 128
思考與問題 128
第6章 Web應(yīng)用 129
6.1 Web服務(wù)器 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 數(shù)據(jù)庫的交互 143
6.2 使用express 144
6.2.1 基本概念 145
6.2.2 靜態(tài)文件服務(wù) 148
6.2.3 路由服務(wù) 148
6.2.4 中間件系統(tǒng) 150
6.2.5 迷你express 154
6.2.6 cookie 156
6.2.7 session 158
6.2.8 OAuth 161
6.2.9 與前端應(yīng)用的整合 165
6.2.10 提高服務(wù)器性能 167
6.3 集群和進(jìn)程管理 169
6.3.1 使用Cluster模塊 169
6.3.2 負(fù)載均衡 171
6.3.3 服務(wù)器安全 173
6.4 HTTPS 175
6.4.1 對稱加密和非對稱加密 176
6.4.2 升級HTTPS服務(wù)器 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
小結(jié) 186
思考與問題 187
第7章 圖形化應(yīng)用 188
7.1 桌面應(yīng)用 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 實現(xiàn)菜單欄 195
7.2.4 多窗口管理 199
小結(jié) 200
思考與問題 200
第8章 測試與調(diào)試 201
8.1 測試框架 201
8.1.1 斷言系統(tǒng) 201
8.1.2 使用jasmine 202
8.1.3 覆蓋率測試 208
8.1.4 壓力測試 209
8.2 調(diào)試 210
8.2.1 調(diào)試Node代碼 211
8.2.2 調(diào)試C++源代碼 211
8.2.3 CPU profile 212
小結(jié) 215
思考與問題 215
附錄A 基礎(chǔ)概念 216
A.1 編程語言和運行時 216
A.1.1 編程語言的產(chǎn)生 217
A.1.2 什么是運行時 217
A.1.3 為什么是JavaScript 217
A.1.4 編譯Node源碼 217
A.1.5 Node架構(gòu) 218
A.1.6 js2c 220
A.2 關(guān)于操作系統(tǒng) 221
A.2.1 進(jìn)程和線程 221
A.2.2 理解高并發(fā) 222
A.2.3 理解非阻塞 222
A.3 事件循環(huán) 222
A.3.1 各階段概述 223
A.3.2 阻塞事件循環(huán) 224
A.3.3 process.nextTick 225
A.3.4 模擬事件循環(huán) 227
A.3.5 microTask 和macroTask/task 228
附錄B 網(wǎng)絡(luò)通信基礎(chǔ) 232
B.1 發(fā)生了什么 232
B.1.1 尋址 232
B.1.2 建立連接 232
B.1.3 通信 233
B.2 socket接口 233
B.2.1 創(chuàng)建socket 234
B.2.2 建立連接 234
B.2.3 接收消息 234
B.3 socket與并發(fā) 234
B.3.1 select和poll 235
B.3.2 epoll 236
附錄C Node和其他語言的比較 237
C.1 面向?qū)ο蟆?37
C.2 C語言中的Stream 238
C.3 關(guān)于I/O的處理 239
C.4 C# Task 239
附錄D Docker 241
D.1 容器技術(shù) 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

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號