基本介紹
內容簡介
Node.js及其擴展的安裝配置
全面理解異步編程和事件循環
學會開發微博、聊天和遊戲等熱門套用
作者簡介
Mike Cantelon Node.js核心框架貢獻者、Node社區活躍分子、資深培訓師和演講人
Marc Harter Node.js核心框架貢獻者
T.J. Holowaychuk 參與開發了很多Node.js模組,包括流行的Express框架
Nathan Rajlich 大名鼎鼎的TooTallNate,Node.js核心代碼提交者
專業推薦
媒體推薦
“這本書由眾位大神寫來,駕輕就熟地告訴大家Node套用該如何編寫。從側面也能看出Node是一個多么輕量級的平台。期望你看完之後也能駕輕就熟地編寫屬於自己的Node套用。”
——朴靈 Node.js布道者、《深入淺出Node.js》作者
“一本由淺入深、循序漸進的佳作。”
——Isaac Z. Schlueter,Node.js項目負責人、Node包管理器(NPM)作者
名人推薦
“這本書由眾位大神寫來,駕輕就熟地告訴大家Node套用該如何編寫。從側面也能看出Node是一個多么輕量級的平台。期望你看完之後也能駕輕就熟地編寫屬於自己的Node套用。”
——朴靈 Node.js布道者、《深入淺出Node.js》作者
“一本由淺入深、循序漸進的佳作。”
——Isaac Z.Schlueter Node.js項目負責人、Node包管理器(NPM)作者
圖書目錄
第一部分 Node基礎
第1章 歡迎進入Node.js世界
1.1 構建於JavaScript之上
1.2 異步和事件觸發:瀏覽器
1.3 異步和事件觸發:伺服器
1.4 DIRT程式
1.5 默認DIRT
1.5.1 簡單的異步程式
1.5.2 Hello World HTTP伺服器
1.5.3 流數據
1.6 小結
第2章 構建有多個房間的聊天室程式
2.1 程式概覽
2.2 程式需求及初始設定
2.2.1 提供HTTP和WebSocket服務
2.2.2 創建程式的檔案結構
2.2.3 指明依賴項
2.2.4 安裝依賴項
2.3 提供HTML、CSS和客戶端JavaScript的服務
2.3.1 創建靜態檔案伺服器
2.3.2 添加HTML和CSS檔案
2.4 用Socket.IO處理與聊天相關的訊息
2.4.1 設定Socket.IO伺服器
2.4.2 處理程式場景及事件
2.5 在程式的用戶界面上使用客戶端JavaScript
2.5.1 將訊息和暱稱/房間變更請求傳給伺服器
2.5.2 在用戶界面中顯示訊息及可用房間
2.6 小結
第3章 Node編程基礎
3.1 Node功能的組織及重用
3.1.1 創建模組
3.1.2 用module.exports微調模組的創建
3.1.3 用node_modules重用模組
3.1.4 注意事項
3.2 異步編程技術
3.2.1 用回調處理一次性事件
3.2.2 用事件發射器處理重複性事件
3.2.3 異步開發的難題
3.3 異步邏輯的順序化
3.3.1 什麼時候使用串列流程控制
3.3.2 實現串列化流程控制
3.3.3 實現並行化流程控制
3.3.4 利用社區裡的工具
3.4 小結
第二部分 用Node開發Web程式
第4章 構建Node Web程式
4.1 HTTP伺服器的基礎知識
4.1.1 Node如何向開發者呈現HTTP請求
4.1.2 一個用“Hello World”做回響的HTTP伺服器
4.1.3 讀取請求頭及設定回響頭
4.1.4 設定HTTP回響的狀態碼
4.2 構建RESTful Web服務
4.2.1 用POST請求創建資源
4.2.2 用GET請求獲取資源
4.2.3 用DELETE請求移除資源
4.3 提供靜態檔案服務
4.3.1 創建一個靜態檔案伺服器
4.3.2 處理伺服器錯誤
4.3.3 用fs.stat()實現先發制人的錯誤處理
4.4 從表單中接受用戶輸入
4.4.1 處理提交的表單域
4.4.2 用formidable處理上傳的檔案
4.4.3 計算上傳進度
4.5 用HTTPS加強程式的安全性
4.6 小結
第5章 存儲Node程式中的數據
5.1 無伺服器的數據存儲
5.1.1 記憶體存儲
5.1.2 基於檔案的存儲
5.2 關係型資料庫管理系統
5.2.1 MySQL
5.2.2 PostgreSQL
5.3 NoSQL資料庫
5.3.1 Redis
5.3.2 MongoDB
5.3.3 Mongoose
5.4 小結
第6章 Connect
6.1 搭建一個Connect程式
6.2 Connect的工作機制
6.2.1 做日誌的中間件
6.2.2 回響“hello world”的中間件
6.3 為什麼中間件的順序很重要
6.3.1 中間件什麼時候不調用next()
6.3.2 用中間件的順序執行認證
6.4 掛載中間件和伺服器
6.4.1 認證中間件
6.4.2 顯示管理面板的中間件
6.5 創建可配置中間件
6.5.1 創建可配置的logger中間件組件
6.5.2 構建路由中間件組件
6.5.3 構建一個重寫URL的中間件組件
6.6 使用錯誤處理中間件
6.6.1 Connect的默認錯誤處理器
6.6.2 自行處理程式錯誤
6.6.3 使用多個錯誤處理中間件組件
6.7 小結
第7章 Connect自帶的中間件
7.1 解析cookie、請求主體和查詢字元串的中間件
7.1.1 cookieParser():解析HTTP cookie
7.1.2 bodyParser():解析請求主體
7.1.3 limit():請求主體的限制
7.1.4 query():查詢字元串解析
7.2 實現Web程式核心功能的中間件
7.2.1 logger():記錄請求
7.2.2 favicon():提供favicon
7.2.3 methodOverride():偽造HTTP方法
7.2.4 vhost():虛擬主機
7.2.5 session():會話管理
7.3 處理Web程式安全的中間件
7.3.1 basicAuth():HTTP基本認證
7.3.2 csrf():跨站請求偽造防護
7.3.3 errorHandler():開發錯誤處理
7.4 提供靜態檔案服務的中間件
7.4.1 static():靜態檔案服務
7.4.2 compress():壓縮靜態檔案
7.4.3 directory():目錄列表
7.5 小結
第8章 Express
8.1 生成程式骨架
8.1.1 安裝Express的可執行程式
8.1.2 生成程式
8.1.3 探索程式
8.2 配置Express和你的程式
8.3 渲染視圖
8.3.1 視圖系統配置
8.3.2 視圖查找
8.3.3 把數據輸出到視圖中
8.4 處理表單和檔案上傳
8.4.1 實現照片模型
8.4.2 創建照片上傳表單
8.4.3 顯示上傳照片列表
8.5 創建資源下載
8.5.1 創建照片下載路由
8.5.2 實現照片下載路由
8.6 小結
第9章 Express進階
9.1 認證用戶
9.1.1 保存和載入用戶
9.1.2 註冊新用戶
9.1.3 已註冊用戶登錄
9.1.4 用戶載入中間件
9.2 先進的路由技術
9.2.1 校驗用戶內容提交
9.2.2 特定路由中間件
9.2.3 實現分頁
9.3 創建一個公開的REST API
9.3.1 設計API
9.3.2 添加基本的認證
9.3.3 實現路由
9.3.4 啟用內容協商
9.4 錯誤處理
9.4.1 處理404錯誤
9.4.2 處理錯誤
9.5 小結
第10章 測試Node程式
10.1 單元測試
10.1.1 assert模組
10.1.2 Nodeunit
10.1.3 Mocha
10.1.4 Vows
10.1.5 should.js
10.2 驗收測試
10.2.1 Tobi
10.2.2 Soda
10.3 小結
第11章 Web程式模板
11.1 用模板保持代碼的整潔性
11.2 嵌入JavaScript的模板
11.2.1 創建模板
11.2.2 用EJS過濾器處理模板數據
11.2.3 將EJS集成到你的程式中
11.2.4 在客戶端程式中使用EJS
11.3 使用Mustache模板語言與Hogan
11.3.1 創建模板
11.3.2 Mustache標籤
11.3.3 微調Hogan
11.4 用Jade做模板
11.4.1 Jade基礎知識
11.4.2 Jade模板中的邏輯
11.4.3 組織Jade模板
11.5 小結
第三部分 在Node中更進一步
第12章 部署Node程式並維持正常運行時間
12.1 安置Node程式
12.1.1 專用的和虛擬私有伺服器
12.1.2 雲主機
12.2 部署的基礎知識
12.2.1 從Git存儲庫部署
12.2.2 讓Node保持運行
12.3 讓正常運行時間和性能達到最優
12.3.1 用Upstart維護正常運行時間
12.3.2 集群API:利用多核的優勢
12.3.3 靜態檔案及代理
12.4 小結
第13章 超越Web伺服器
13.1 Socket.IO
13.1.1 創建一個最小的Socket.IO程式
13.1.2 用Socket.IO觸發頁面和CSS的重新載入
13.1.3 Socket.IO的其他用法
13.2 深入TCP/IP網路
13.2.1 處理緩衝區和二進制數據
13.2.2 創建TCP伺服器
13.2.3 創建TCP客戶端
13.3 跟作業系統互動的工具
13.3.1 單例的全局process對象
13.3.2 使用檔案系統模組
13.3.3 繁衍外部進程
13.4 開發命令行工具
13.4.1 解析命令行參數
13.4.2 處理stdin和stdout
13.4.3 添加彩色的輸出
13.5 小結
第14章 Node生態系統
14.1 給Node開發人員的線上資源
14.1.1 Node和模組的參考資料
14.1.2 Google群組
14.1.3 IRC
14.1.4 GitHub問題列表
14.2 GitHub
14.2.1 GitHub入門
14.2.2 添加一個項目到GitHub中
14.2.3 用GitHub協作
14.3 為npm庫做貢獻
14.3.1 準備包
14.3.2 編寫包規範
14.3.3 測試和發布包
14.4 小結
附錄A 安裝Node和社區附加組件
附錄B 調試Node
附錄C Express的擴展及配置