前言
第1章 Node.js介紹 / 1
1.1 Node.js概述 / 2
1.1.1 使用Node.js能夠解決什麼問題 / 2
1.1.2 實現高性能服務器 / 2
1.1.3 非阻塞型I/O及事件環機製 / 2
1.1.4 Node.js適閤開發的應用程序 / 3
1.2 安裝Node.js / 3
1.3 Node.js中的模塊 / 4
1.4 一個簡單的示例應用程序 / 6
1.5 小結 / 8
第2章 Node.js中的交互式運行環境——REPL / 9
2.1 REPL運行環境概述 / 10
2.2 在REPL運行環境中操作變量 / 10
2.3 在REPL運行環境中使用下劃綫字符 / 12
2.4 在REPL運行環境中直接運行函數 / 12
2.5 在REPL運行環境中定義並啓動服務器 / 13
2.6 REPL運行環境中的上下文對象 / 13
2.7 REPL運行環境中的基礎命令 / 14
2.8 小結 / 17
第3章 Node.js基礎知識 / 18
3.1 Node.js中的控製颱 / 19
3.1.1 console.log方法 / 19
3.1.2 console.error方法 / 20
3.1.3 console.dir方法 / 21
3.1.4 console.time方法與console.timeEnd方法 / 22
3.1.5 console.trace方法 / 22
3.1.6 console.assert方法 / 23
3.2 Node.js中的全局作用域及全局函數 / 23
3.2.1 Node.js中的全局作用域 / 23
3.2.2 setTimeout函數與clearTimeout函數 / 25
3.2.3 setInterval函數與clearInterval函數 / 25
3.2.4 定時器對象的unref方法與ref方法 / 27
3.2.5 與模塊相關的全局函數及對象 / 28
3.3 __filename變量與__dirname變量 / 33
3.3.1 __filename變量 / 33
3.3.2 __dirname變量 / 34
3.4 事件處理機製及事件環機製 / 34
3.4.1 EventEmitter類 / 35
3.4.2 EventEmitter類的各個方法 / 35
3.4.3 獲取指定事件的事件處理函數的數量 / 41
3.4.4 EventEmitter類自身所擁有的事件 / 42
3.4.5 事件環機製 / 44
3.5 在Node.js中使用調試器 / 45
3.5.1 在命令行窗口中使用調試器 / 45
3.5.2 觀察變量值或錶達式的執行結果 / 48
3.5.3 設置與取消斷點 / 49
3.5.4 調試器中可以使用的其他實用命令 / 50
3.5.5 使用node-inspector調試工具 / 54
3.6 小結 / 55
第4章 模塊與npm包管理工具 / 56
4.1 核心模塊與文件模塊 / 57
4.2 從模塊外部訪問模塊內的成員 / 58
4.2.1 使用exports對象 / 58
4.2.2 將模塊定義為類 / 58
4.2.3 為模塊類定義類變量或類函數 / 61
4.3 組織與管理模塊 / 61
4.3.1 從node_modules目錄中加載模塊 / 61
4.3.2 使用目錄來管理模塊 / 62
4.3.3 從全局目錄中加載模塊 / 62
4.4 模塊對象的屬性 / 63
4.5 包與npm包管理工具 / 65
4.5.1 Node.js中的包 / 65
4.5.2 npm包管理工具 / 67
4.6 小結 / 68
第5章 使用Buffer類處理二進製數據 / 69
5.1 創建Buffer對象 / 70
5.2 字符串的長度與緩存區的長度 / 72
5.3 Buffer對象與字符串對象之間的相互轉換 / 74
5.3.1 Buffer對象的toString方法 / 74
5.3.2 Buffer對象的write方法 / 75
5.3.3 StringDecoder對象 / 75
5.4 Buffer對象與數值對象之間的相互轉換 / 77
5.5 Buffer對象與JSON對象之間的相互轉換 / 79
5.6 復製緩存數據 / 80
5.7 Buffer類的類方法 / 81
5.7.1 isBuffer方法 / 81
5.7.2 byteLength方法 / 81
5.7.3 concat方法 / 82
5.7.4 isEncoding方法 / 83
5.8 小結 / 83
第6章 在Node.js中操作文件係統 / 84
6.1 同步方法與異步方法 / 85
6.2 對文件執行讀寫操作 / 86
6.2.1 文件的完整讀寫 / 86
6.2.2 從指定位置處開始讀寫文件 / 91
6.3 創建與讀取目錄 / 97
6.3.1 創建目錄 / 97
6.3.2 讀取目錄 / 98
6.4 查看與修改文件或目錄的信息 / 99
6.4.1 查看文件或目錄的信息 / 99
6.4.2 檢查文件或目錄是否存在 / 101
6.4.3 獲取文件或目錄的絕對路徑 / 102
6.4.4 修改文件訪問時間及修改時間 / 103
6.4.5 修改文件或目錄的讀寫權限 / 104
6.5 可以對文件或目錄執行的其他操作 / 105
6.5.1 移動文件或目錄 / 105
6.5.2 創建與刪除文件的硬鏈接 / 106
6.5.3 創建與查看符號鏈接 / 107
6.5.4 截斷文件 / 110
6.5.5 刪除空目錄 / 111
6.5.6 監視文件或目錄 / 111
6.6 使用文件流 / 116
6.6.1 流的基本概念 / 116
6.6.2 使用ReadStream對象讀取文件 / 119
6.6.3 使用WriteStream對象寫入文件 / 121
6.7 對路徑進行操作 / 127
6.8 小結 / 134
第7章 實現基於TCP與UDP的數據通信 / 135
7.1 使用net模塊實現基於TCP的數據通信 / 136
7.1.1 創建TCP服務器 / 136
7.1.2 socket端口對象 / 142
7.1.3 創建TCP客戶端 / 151
7.1.4 net模塊中的類方法 / 164
7.2 使用dgram模塊實現基於UDP的數據通信 / 165
7.2.1 創建UDP服務器與客戶端 / 165
7.2.2 實現廣播與組播 / 172
7.3 小結 / 175
第8章 創建HTTP與HTTPS服務器及客戶端 / 176
8.1 HTTP服務器 / 177
8.1.1 創建HTTP服務器 / 177
8.1.2 獲取客戶端請求信息 / 182
8.1.3 轉換URL字符串與查詢字符串 / 184
8.1.4 發送服務器端響應流 / 191
8.2 HTTP客戶端 / 202
8.2.1 嚮其他網站請求數據 / 202
8.2.2 嚮本地服務器請求數據 / 208
8.2.3 製作代理服務器 / 210
8.3 創建HTTPS服務器與客戶端 / 211
8.3.1 創建HTTPS服務器 / 211
8.3.2 創建HTTPS客戶端 / 216
8.4 小結 / 223
第9章 進程與子進程 / 224
9.1 Node.js中的進程 / 225
9.1.1 進程對象的屬性 / 225
9.1.2 進程對象的方法與事件 / 227
9.2 創建多進程應用程序 / 235
9.2.1 使用spawn方法開啓子進程 / 236
9.2.2 使用fork方法開啓子進程 / 243
9.2.3 使用exec方法開啓子進程 / 250
9.2.4 使用execFile方法開啓子進程 / 253
9.3 在多個子進程中運行Node.js應用程序 / 254
9.3.1 使用fork方法創建worker對象 / 254
9.3.2 worker對象的方法與事件 / 262
9.4 小結 / 270
第10章 Node.js中的錯誤處理與斷言處理 / 271
10.1 使用domain模塊處理錯誤 / 272
10.1.1 domain模塊概述 / 272
10.1.2 創建並使用Domain對象 / 274
10.1.3 隱式綁定與顯式綁定 / 276
10.1.4 綁定迴調函數與攔截迴調函數 / 279
10.1.5 domain堆棧的彈齣與推入 / 280
10.1.6 Domain對象的銷毀 / 286
10.2 Node.js中的斷言處理 / 286
10.2.1 equal方法與notEqual方法 / 287
10.2.2 strictEqual方法與notStrictEqual方法 / 288
10.2.3 assert方法與ok方法 / 288
10.2.4 deepEqual方法與notDeepEqual方法 / 289
10.2.5 throws方法與doesNotThrow方法 / 290
10.3 小結 / 293
第11章 加密與壓縮 / 294
11.1 加密與解密處理 / 295
11.1.1 crypto模塊概述 / 295
11.1.2 散列算法 / 296
11.1.3 HMAC算法 / 297
11.1.4 公鑰加密 / 298
11.2 壓縮與解壓縮處理 / 305
11.2.1 創建各種用於壓縮及解壓縮的對象 / 305
11.2.2 zlib模塊中的各種方法 / 310
11.3 小結 / 311
第12章 Node.js中的其他模塊 / 312
12.1 使用dns模塊解析域名 / 313
12.1.1 使用resolve方法將域名解析為DNS記錄 / 313
12.1.2 使用lookup方法查詢IP地址 / 315
12.1.3 使用reverse方法反嚮解析IP地址 / 316
12.1.4 dns模塊中的各種錯誤代碼 / 317
12.2 使用punycode模塊轉換punycode編碼 / 318
12.3 使用os模塊獲取操作係統信息 / 320
12.4 使用readline模塊逐行讀取流數據 / 323
12.4.1 創建 Interface對象 / 323
12.4.2 Interface對象所擁有的各種方法與事件 / 327
12.5 使用util模塊中提供的一些實用方法 / 335
12.6 使用vm模塊改變腳本運行環境 / 346
12.6.1 在獨立環境中運行JavaScript代碼 / 346
12.6.2 創建並使用Script對象 / 350
12.7 自定義REPL運行環境 / 352
12.8 小結 / 358
第13章 數據庫訪問 / 359
13.1 在MongoDB數據庫中存取數據 / 360
13.1.1 MongoDB概述 / 360
13.1.2 安裝MongoDB數據庫 / 360
13.1.3 安裝MongoDB包 / 361
13.1.4 連接MongoDB數據庫 / 361
13.1.5 在MongoDB數據庫中插入數據 / 364
13.1.6 在MongoDB數據庫中查詢數據 / 369
13.1.7 在MongoDB數據庫中更新與刪除數據 / 384
13.1.8 使用Mongoose類庫 / 393
13.2 在MySQL數據庫中存取數據 / 395
13.2.1 建立連接與關閉連接 / 395
13.2.2 執行數據的基本處理 / 399
13.2.3 執行存儲過程 / 404
13.2.4 執行多錶結閤查詢 / 406
13.2.5 以數據流的方式處理查詢數據 / 409
13.2.6 創建連接池 / 411
13.3 小結 / 413
第14章 使用Express構建Web應用程序 / 414
14.1 Express概述 / 415
14.1.1 安裝Express / 415
14.1.2 使用Express開發一個簡單的示例應用程序 / 415
· · · · · · (
收起)