《Node.js實戰(zhàn)》是Node.js的實戰(zhàn)教程,涵蓋了為開發(fā)產(chǎn)品級Node應用程序所需要的一切特性、技巧以及相關理念。從搭建Node開發(fā)環(huán)境,到一些簡單的演示程序,到開發(fā)復雜應用程序所必不可少的異步編程。書中還介紹了HTTP API的應用技巧等。
《Node.js實戰(zhàn)》適合Web開發(fā)人員閱讀。
Node.js及其擴展的安裝配置
理解異步編程和事件循環(huán)
學會開發(fā)微博、聊天和游戲等熱門應用
Mike Cantelon Node.js核心框架貢獻者、Node社區(qū)活躍分子、博學培訓師和演講人
Marc Harter Node.js核心框架貢獻者
T.J. Holowaychuk 參與開發(fā)了很多Node.js模塊,包括流行的Express框架
Nathan Rajlich 大名鼎鼎的TooTallNate,Node.js核心代碼提交者
及時部分 Node基礎
第1章 歡迎進入Node.js世界
1.1 構建于JavaScript之上
1.2 異步和事件觸發(fā):瀏覽器
1.3 異步和事件觸發(fā):服務器
1.4 DIRT程序
1.5 默認DIRT
1.5.1 簡單的異步程序
1.5.2 Hello World HTTP服務器
1.5.3 流數(shù)據(jù)
1.6 小結
第2章 構建有多個房間的聊天室程序
2.1 程序概覽
2.2 程序需求及初始設置
2.2.1 提供HTTP和WebSocket服務
2.2.2 創(chuàng)建程序的文件結構
2.2.3 指明依賴項
2.2.4 安裝依賴項
2.3 提供HTML、CSS和客戶端JavaScript的服務
2.3.1 創(chuàng)建靜態(tài)文件服務器
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 創(chuàng)建模塊
3.1.2 用module.exports微調(diào)模塊的創(chuàng)建
3.1.3 用node_modules重用模塊
3.1.4 注意事項
3.2 異步編程技術
3.2.1 用回調(diào)處理一次性事件
3.2.2 用事件發(fā)射器處理重復性事件
3.2.3 異步開發(fā)的難題
3.3 異步邏輯的順序化
3.3.1 什么時候使用串行流程控制
3.3.2 實現(xiàn)串行化流程控制
3.3.3 實現(xiàn)并行化流程控制
3.3.4 利用社區(qū)里的工具
3.4 小結
第二部分 用Node開發(fā)Web程序
第4章 構建Node Web程序
4.1 HTTP服務器的基礎知識
4.1.1 Node如何向開發(fā)者呈現(xiàn)HTTP請求
4.1.2 一個用"Hello World"做響應的HTTP服務器
4.1.3 讀取請求頭及設定響應頭
4.1.4 設定HTTP響應的狀態(tài)碼
4.2 構建RESTful Web服務
4.2.1 用POST請求創(chuàng)建資源
4.2.2 用GET請求獲取資源
4.2.3 用DELETE請求移除資源
4.3 提供靜態(tài)文件服務
4.3.1 創(chuàng)建一個靜態(tài)文件服務器
4.3.2 處理服務器錯誤
4.3.3 用fs.stat()實現(xiàn)先發(fā)制人的錯誤處理
4.4 從表單中接受用戶輸入
4.4.1 處理提交的表單域
4.4.2 用formidable處理上傳的文件
4.4.3 計算上傳進度
4.5 用HTTPS加強程序的安全性
4.6 小結
第5章 存儲Node程序中的數(shù)據(jù)
5.1 無服務器的數(shù)據(jù)存儲
5.1.1 內(nèi)存存儲
5.1.2 基于文件的存儲
5.2 關系型數(shù)據(jù)庫管理系統(tǒng)
5.2.1 MySQL
5.2.2 PostgreSQL
5.3 NoSQL數(shù)據(jù)庫
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 中間件什么時候不調(diào)用next()
6.3.2 用中間件的順序執(zhí)行認證
6.4 掛載中間件和服務器
6.4.1 認證中間件
6.4.2 顯示管理面板的中間件
6.5 創(chuàng)建可配置中間件
6.5.1 創(chuàng)建可配置的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 實現(xiàn)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():開發(fā)錯誤處理
7.4 提供靜態(tài)文件服務的中間件
7.4.1 static():靜態(tài)文件服務
7.4.2 compress():壓縮靜態(tài)文件
7.4.3 directory():目錄列表
7.5 小結
第8章 Express
8.1 生成程序骨架
8.1.1 安裝Express的可執(zhí)行程序
8.1.2 生成程序
8.1.3 探索程序
8.2 配置Express和你的程序
8.3 渲染視圖
8.3.1 視圖系統(tǒng)配置
8.3.2 視圖查找
8.3.3 把數(shù)據(jù)輸出到視圖中
8.4 處理表單和文件上傳
8.4.1 實現(xiàn)照片模型
8.4.2 創(chuàng)建照片上傳表單
8.4.3 顯示上傳照片列表
8.5 創(chuàng)建資源下載
8.5.1 創(chuàng)建照片下載路由
8.5.2 實現(xiàn)照片下載路由
8.6 小結
第9章 Express進階
9.1 認證用戶
9.1.1 保存和加載用戶
9.1.2 注冊新用戶
9.1.3 已注冊用戶登錄
9.1.4 用戶加載中間件
9.2 先進的路由技術
9.2.1 校驗用戶內(nèi)容提交
9.2.2 特定路由中間件
9.2.3 實現(xiàn)分頁
9.3 創(chuàng)建一個公開的REST API
9.3.1 設計API
9.3.2 添加基本的認證
9.3.3 實現(xiàn)路由
9.3.4 啟用內(nèi)容協(xié)商
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 創(chuàng)建模板
11.2.2 用EJS過濾器處理模板數(shù)據(jù)
11.2.3 將EJS集成到你的程序中
11.2.4 在客戶端程序中使用EJS
11.3 使用Mustache模板語言與Hogan
11.3.1 創(chuàng)建模板
11.3.2 Mustache標簽
11.3.3 微調(diào)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:利用多核的優(yōu)勢
12.3.3 靜態(tài)文件及
12.4 小結
第13章 超越Web服務器
13.1 Socket.IO
13.1.1 創(chuàng)建一個最小的Socket.IO程序
13.1.2 用Socket.IO觸發(fā)頁面和CSS的重新加載
13.1.3 Socket.IO的其他用法
13.2 深入TCP/IP網(wǎng)絡
13.2.1 處理緩沖區(qū)和二進制數(shù)據(jù)
13.2.2 創(chuàng)建TCP服務器
13.2.3 創(chuàng)建TCP客戶端
13.3 跟操作系統(tǒng)交互的工具
13.3.1 單例的全局process對象
13.3.2 使用文件系統(tǒng)模塊
13.3.3 繁衍外部進程
13.4 開發(fā)命令行工具
13.4.1 解析命令行參數(shù)
13.4.2 處理stdin和stdout
13.4.3 添加彩色的輸出
13.5 小結
第14章 Node生態(tài)系統(tǒng)
14.1 給Node開發(fā)人員的在線資源
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協(xié)作
14.3 為npm庫做貢獻
14.3.1 準備包
14.3.2 編寫包規(guī)范
14.3.3 測試和包
14.4 小結
附錄A 安裝Node和社區(qū)附加組件
附錄B 調(diào)試Node
附錄C Express的擴展及配置
[前言]
2011年初,Manning出版社找到我們,說想出一本關于Node.js的書,那時Node社區(qū)的狀態(tài)和現(xiàn)在很不一樣,圈子還很小。盡管已經(jīng)有很多人表現(xiàn)出了對它的興趣,但Node仍然被主流開發(fā)社區(qū)看做是一項有風險的技術,還沒有人寫過關于Node的書。盡管寫書的想法令人生畏,但我們還是決定去大膽一試。
鑒于我們各自的開發(fā)方向不同,我們想不僅要把這本書的重點全放在Node的Web程序開發(fā)上,還要探索其他有趣的潛在用途。我們想給Web開發(fā)人員指出一條道路,用現(xiàn)有技術將異步開發(fā)帶入服務器這一Node愿景。
這本書我們寫了兩年多,在寫作過程中,這門技術已經(jīng)進化了,所以我們也相應地做了更新。它現(xiàn)在變得更大了,很多成熟的公司也開始擁抱Node。
對于想做些不同嘗試的Web程序開發(fā)人員,現(xiàn)在是學習Node的好時機,希望這本書可以幫到你,讓你能迅速學會這門技術,并在其中找到樂趣。
"這本書由眾位大神寫來,駕輕就熟地告訴大家Node應用該如何編寫。從側面也能看出Node是一個多么輕量級的平臺。期望你看完之后也能駕輕就熟地編寫屬于自己的Node應用。"
——樸靈 Node.js布道者、《深入淺出Node.js》作者
"一本由淺入深、循序漸進的佳作。"
——Isaac Z. Schlueter,Node.js項目負責人、Node包管理器(NPM)作者
好
東西很好!
很好
挺好,速度挺快!
內(nèi)容豐富。
還行
???? ??high
DD????
不錯 挺好的
,лл,,,!!
實戰(zhàn)的書,還沒怎么看
不錯
正版,圖靈圖書可以有
很好 適合入門
很不錯的。。。。。
實戰(zhàn)系列,值得閱讀收藏
很不錯,包裝也好。印刷清晰。很喜歡。
東西不錯,快遞一如既往地快,果斷好評。
值得一看的node入門教材
包裝完好,物流很快!
很不錯的一本書
書包裝紙質(zhì)印刷都挺好,還沒開始學習
in action不錯,最喜歡這套系列書籍了
紙張不錯,但是印刷太爛了 代碼印刷和盜版差不多
非常不錯!翻譯得很到位,有些地方還有些小幽默,我都想寫封郵件給譯者贊一個,不過找不到聯(lián)系方式。
條理清晰,一章一章往下看,有種豁然開朗的感覺,不過exprees部分版本有點舊
Manning的書不會錯,還沒來得及看,看后再補評。
你們的快遞員太牛逼了,上來就說:下來一樓拿快遞,我說幫我放管理處,然后給我掛了。。。太嚇人了我還是把當當卸載了把,拜拜