第1章 Node.js初識 1
1.1 引子 1
1.2 JavaScript 7
1.3 什麼是Node.js 9
1.3.1 Node.js概述 9
1.3.2 Node.js的特點 12
1.3.3 Node.js的應用場景 16
1.4 本章小結 18
第2章 Node.js安裝與入門 19
2.1 安裝Node.js 19
2.1.1 3m安裝法 19
2.1.2 nvm 20
2.1.3 npm 26
2.1.4 nrm 32
2.1.5 從源碼進行編譯 35
2.1.6 狀態理論 35
2.2 Hello Node.js! 36
2.2.1 Hello World 36
2.2.2 Hello CommonJS 37
2.2.3 Hello HTTP 38
2.3 編輯器與調試 41
2.3.1 IDE/編輯器 41
2.3.2 VSCode 42
2.3.3 調試 45
2.4 本章小結 52
第3章 更瞭不起的Node.js 53
3.1 架構升級 53
3.1.1 從LAMP到MEAN 54
3.1.2 前後端分離 55
3.1.3 頁麵即服務 58
3.1.4 場景決定選型 59
3.2 貫穿開發全過程 60
3.2.1 靜態API 60
3.2.2 現代Web開發 63
3.2.3 後端開發 68
3.3 更多樂趣 78
3.3.1 更多應用場景 78
3.3.2 C/C++擴展 79
3.3.3 團隊優化 80
3.3.4 全棧之路 81
3.4 本章小結 85
第4章 更好的Node.js 86
4.1 選擇 86
4.1.1 語法可難可易 86
4.1.2 開發大型軟件 90
4.1.3 特定場景下的快速開發 91
4.2 單綫程會“死”嗎 92
4.2.1 uncaughtException 93
4.2.2 異常捕獲 94
4.2.3 forever 95
4.2.4 小集群:單颱服務器上多個實例 95
4.2.5 大集群:多颱機器 96
4.3 為Node.js正名 98
4.3.1 版本帝? 98
4.3.2 已無性能優勢? 99
4.3.3 異步和迴調地獄? 100
4.3.5 技術棧演進 101
4.4 更好的實踐 102
4.4.1 ES.next 102
4.4.2 類型係統 110
4.4.3 更好的npm替代品——Yarn 111
4.4.4 多模塊管理器Lerna 113
4.5 本章小結 114
第5章 Node.js是如何執行的 115
5.1 準備 115
5.1.1 編輯器 116
5.1.2 編譯 117
5.1.3 調試 118
5.2 編譯步驟 120
5.2.1 configure 120
5.2.2 make 130
5.2.3 make install 132
5.3 從入口開始 135
5.3.1 核心流程 137
5.3.2 構造process對象 139
5.3.3 LoadEnvironment 147
5.3.4 bootstrap_node.js 148
5.3.5 EventLoop啓動方法 160
5.4 API調用過程 162
5.4.1 相關的引用 163
5.4.2 FSReqWrap 163
5.4.3 核心open方法 164
5.4.4 src/node_file.cc 164
5.5 事件循環機製 167
5.5.1 概覽 167
5.5.2 生命周期 169
5.5.3 microtask和macrotask 170
5.5.4 process.nextTick(callback) 173
5.6 本章小結 175
第6章 模塊與核心 176
6.1 CommonJS規範 176
6.1.1 簡介 176
6.1.2 核心技術 181
6.2 Node.js 模塊 189
6.2.1 從源碼分析實現原理 189
6.2.2 從Node.js代碼執行開始 191
6.2.3 深入理解模塊 195
6.2.4 全局對象 205
6.2.5 Node.js模塊詳解 215
6.3 未來展望:ES模塊 220
6.3.1 ES模塊入門 221
6.3.2 模塊導入 222
6.3.3 模塊導齣 222
6.3.4 ES模塊示例 223
6.3.5 兼容性更好的@std/esm 224
6.4 本章小結 224
第7章 異步寫法與流程控製 225
7.1 異步調用 226
7.1.1 異步與同步 226
7.1.2 瀏覽器中的異步 227
7.1.3 Node.js異步原理 227
7.1.4 API和示例 229
7.1.5 代碼優化 231
7.2 Node.js自帶的異步寫法 236
7.2.1 錯誤優先的迴調方式 236
7.2.2 EventEmitter 240
7.2.3 該選擇哪種風格的寫法 247
7.3 更好的異步流程控製 248
7.3.1 迴調地獄 248
7.3.2 Thunk 252
7.3.3 Promise 254
7.3.4 Generator 276
7.3.5 async函數 282
7.4 本章小結 287
· · · · · · (
收起)