目 錄
第1章 Node.js簡介 1
1.1 Node.js 是什麼 2
1.2 Node.js 能做什麼 3
1.3 異步式 I/O 與事件驅動 4
1.4 Node.js 的性能 5
1.4.1 Node.js 架構簡介 5
1.4.2 Node.js 與 PHP + Nginx 6
1.5 JavaScript 簡史 6
1.5.1 Netscape 與 LiveScript 7
1.5.2 Java 與 Javascript 7
1.5.3 微軟的加入—— JScript 8
1.5.4 標準化—— ECMAScript 8
1.5.5 瀏覽器兼容性問題 9
1.5.6 引擎效率革命和 JavaScript 的未來 9
1.6 CommonJS 10
1.6.1 服務端 JavaScript 的重生 10
1.6.2 CommonJS 規範與實現 11
1.7 參考資料 12
第2章 安裝和配置Node.js 13
2.1 安裝前的準備 14
2.2 快速安裝 14
2.2.1 Microsoft Windows係統上安裝Node.js 14
2.2.2 Linux 發行版上安裝Node.js 16
2.2.3 Mac OS X上安裝Node.js 16
2.3 編譯源代碼 17
2.3.1 在 POSIX 係統中編譯 17
2.3.2 在 Windows係統中編譯 18
2.4 安裝Node 包管理器 18
2.5 安裝多版本管理器 19
2.6 參考資料 21
第3章 Node.js快速入門 23
3.1 開始用 Node.js 編程 24
3.1.1 Hello World 24
3.1.2 Node.js 命令行工具 25
3.1.3 建立 HTTP 服務器 26
3.2 異步式 I/O 與事件式編程 29
3.2.1 阻塞與綫程 29
3.2.2 迴調函數 31
3.2.3 事件 33
3.3 模塊和包 34
3.3.1 什麼是模塊 35
3.3.2 創建及加載模塊 35
3.3.3 創建包 38
3.3.4 Node.js 包管理器 41
3.4 調試 45
3.4.1 命令行調試 45
3.4.2 遠程調試 47
3.4.3 使用 Eclipse 調試 Node.js 48
3.4.4 使用 node-inspector 調試Node.js 54
3.5 參考資料 55
第4章 Node.js核心模塊 57
4.1 全局對象 58
4.1.1 全局對象與全局變量 58
4.1.2 process 58
4.1.3 console 60
4.2 常用工具 util 61
4.2.1 util.inherits 61
4.2.2 util.inspect 62
4.3 事件驅動 events 63
4.3.1 事件發射器 64
4.3.2 error 事件 65
4.3.3 繼承 EventEmitter 65
4.4 文件係統 fs 65
4.4.1 fs.readFile 66
4.4.2 fs.readFileSync 67
4.4.3 fs.open 67
4.4.4 fs.read 68
4.5 HTTP 服務器與客戶端 70
4.5.1 HTTP 服務器 70
4.5.2 HTTP 客戶端 74
4.6 參考資料 77
第5章 使用Node.js進行Web開發 79
5.1 準備工作 80
5.1.1 使用http模塊 82
5.1.2 Express 框架 83
5.2 快速開始 84
5.2.1 安裝 Express 84
5.2.2 建立工程 85
5.2.3 啓動服務器 86
5.2.4 工程的結構 87
5.3 路由控製 89
5.3.1 工作原理 89
5.3.2 創建路由規則 92
5.3.3 路徑匹配 93
5.3.4 REST 風格的路由規則 94
5.3.5 控製權轉移 95
5.4 模闆引擎 97
5.4.1 什麼是模闆引擎 97
5.4.2 使用模闆引擎 98
5.4.3 頁麵布局 99
5.4.4 片段視圖 100
5.4.5 視圖助手 100
5.5 建立微博網站 102
5.5.1 功能分析 102
5.5.2 路由規劃 102
5.5.3 界麵設計 103
5.5.4 使用Bootstrap 104
5.6 用戶注冊和登錄 107
5.6.1 訪問數據庫 107
5.6.2 會話支持 110
5.6.3 注冊和登入 111
5.6.4 頁麵權限控製 120
5.7 發錶微博 123
5.7.1 微博模型 123
5.7.2 發錶微博 125
5.7.3 用戶頁麵 126
5.7.4 首頁 127
5.7.5 下一步 129
5.8 參考資料 129
第6章 Node.js進階話題 131
6.1 模塊加載機製 132
6.1.1 模塊的類型 132
6.1.2 按路徑加載模塊 132
6.1.3 通過查找node_modules目錄加載模塊 133
6.1.4 加載緩存 134
6.1.5 加載順序 134
6.2 控製流 135
6.2.1 循環的陷阱 135
6.2.2 解決控製流難題 137
6.3 Node.js 應用部署 138
6.3.1 日誌功能 138
6.3.2 使用cluster模塊 140
6.3.3 啓動腳本 142
6.3.4 共享80端口 143
6.4 Node.js 不是銀彈 144
6.5 參考資料 146
附錄A JavaScript的高級特性 147
附錄B Node.js編程規範 167
索引 175
· · · · · · (
收起)