産品特色
編輯推薦
《Node.js實戰(第2季)》作者來自CNode社區點擊率頗高、粉絲數萬的《一起學node.js》。《Node.js實戰(第2季)》沒有成為教條式的入門級彆,而是真正進入Node.js實戰層次。
《Node.js實戰(第2季)》在《Node.js實戰(雙色)》的基礎上增加瞭實戰案例的難度,並結閤瞭當下的熱門應用,增加瞭對原理、代碼的細節講解。
《Node.js實戰(第2季)》與《Node.js實戰(雙色)》配套學習,可迅速開闊視野、提升開發技能、增加實戰實力。
《Node.js實戰(第2季)》是經讀者強烈呼籲而誕生的,作者絞盡腦汁,就是為瞭讓讀者在閱讀後大呼過癮!
內容簡介
《Node.js實戰(第2季)》通過7個實例分彆講解瞭Node.js在實戰開發中的應用,這些章節既涉及Docker、Koa 等全新技術,也涉及OAuth2、命令行工具、消息隊列、單元測試、編寫C/C++模塊等實戰中經常會遇到的問題和應用場景。本書章節大體按照從簡單到復雜的難度編排,每一章都通過一個實例指引讀者從頭開發一個Node.js應用,讓讀者循序漸進地學習Node.js,以及在實戰開發中的編程技巧。本書不但著重講解瞭每個實戰案例所涉及的基礎知識、思路和方法,也詳細解釋瞭源碼的關鍵部分,希望有利於讀者的學習和理解。
《Node.js實戰(第2季)》適閤有一定Node.js基礎及服務器端開發基礎的讀者閱讀,也適閤想瞭解Node.js可以做什麼、想迅速上手實踐的讀者閱讀。
作者簡介
吳中驊,現於同程旅遊擔任係統架構師,也負責在同程旅遊開展Node.js項目,非常享受Node.js的高性能和異步帶來的編程愉悅感。
雷宗民,一登後颱開發工程師,2011年6月開始接觸Node.js,從此開始各種摺騰與造輪子。
趙坤,現於北京紅樹島信息科技有限公司工作,熱愛互聯網,崇尚開源精神。2013年偶遇Node.js,相見恨晚,從此開始一條Node.js不歸路。
劉亞中,GitHub發燒友、Node.js源碼貢獻者,以Node.js Ninja身份先後參與國內外多個創業項目如Pixbi、Fireball、WeFlex、51Degrees等,並參與維護其中的部分開源項目。
目錄
第1章 通過Docker快速發布Node.js應用/ 1
1.1 什麼是Docker /1
1.2 Nginx作為Node.js前端Web Server的作用 /3
1.3 安裝Docker和下載Images鏡像/ 5
1.4 Docker常用命令 /8
1.5 啓動Container盒子 /10
1.6 文件捲標加載/ 11
1.7 將多個Container盒子連接起來 /13
1.8 不要用SSH連接到你的Container盒子 /15
1.9 配置DockerImages鏡像和發布應用/ 19
1.10 什麼是Jenkins/ 26
1.11 通過Docker安裝和啓動Jenkins /28
1.12 配置Jenkins並自動化部署Node.js項目/ 29
1.13 小結/ 36
1.14 參考文獻/ 37
第2章 開發OAuth2認證服務器 /38
2.1 本章所用到的第三方模塊/ 38
2.2 REST風格的API/ 39
2.3 定義返迴數據格式/ 40
2.4 實現簡單的API/ 41
2.4.1 擴展Response對象/ 41
2.4.2 統一處理齣錯信息/ 43
2.4.3 實現簡單的API/ 43
2.4.4 API版本/ 44
2.5 關於OAuth認證/ 45
2.5.1 OAuth 2.0授權流程/ 45
2.5.2 OAuth 2.0授權詳解/ 45
2.5.3 定義授權接口/ 48
2.6 實現OAuth認證/ 48
2.6.1 OAuth2/authorize接口/ 48
2.6.2 OAuth2/access_token接口/ 52
2.6.3 在處理API請求前驗證Access Token/ 55
2.6.4 Access Token過期的問題/ 56
2.7 實現API客戶端/ 58
2.8 API傳輸過程中的安全問題/ 62
2.9 API請求頻率限製/ 63
2.10 讓API返迴結果支持不同的格式/65
2.10.1 通過後綴來指定返迴的數據格式/ 65
2.10.2 通過Accept請求頭來指定返迴的數據格式/ 67
2.11 生成隨機的測試數據/ 68
2.12 小結/ 69
2.13 參考文獻及開源項目/ 70
第3章 基於RabbitMQ搭建消息隊列/ 72
3.1 什麼是消息隊列,消息隊列的優勢/72
3.2 安裝和啓動RabbitMQ /75
3.3 RabbitMQ的Hello World/ 76
3.4 RabbitMQ的工作隊列/80
3.5 RabbitMQ的PUB/SUB隊列/ 84
3.6 RabbitMQ的隊列路由 /89
3.7 RabbitMQ的RPC遠程過程調用/ 94
3.8 基於RabbitMQ的Node.js和Python通信實例/ 99
3.9 RabbitMQ方案和HTTP方案的對比 /103
3.10 小結/ 117
3.11 參考文獻 117
第4章 編寫命令行工具——打造一個靜態博客係統/ 118
4.1 本章所使用到的第三方模塊/ 119
4.2 命令格式/ 120
4.2.1 常見的命令格式/ 121
4.2.2 定義靜態博客命令格式/121
4.3 編寫命令行工具/ 122
4.4 實時預覽/ 126
4.4.1 啓動Web服務器 /127
4.4.2 渲染文章頁麵/ 128
4.4.3 文章元數據/ 131
4.4.4 增加模闆/ 132
4.4.5 渲染文章列錶/ 136
4.5 生成靜態博客/ 140
4.6 配置文件/ 146
4.7 創建空白博客模闆/ 150
4.8 一些有用的第三方服務/ 153
4.8.1 評論組件/ 153
4.8.2 分享組件/ 154
4.9 小結/ 155
4.10 參考文獻/ 156
第5章 基於Koa快速開發Web應用/ 157
5.1 ES6時代的來臨/ 157
5.1.1 function和function*/ 158
5.1.2 yield和yield*/ 1605.1.3 co和Koa/ 162
5.2 模闆係統/ 170
5.2.1 ejs和co-ejs/ 170
5.2.2 過濾器/ 173
5.3 路由/ 173
5.4 參數驗證與錯誤處理/ 175
5.4.1 koa-scheme /175
5.4.2 koa-errorhandler/ 178
5.5 緩存和配置/ 182
5.5.1 koa-router-cache和co-cache /182
5.5.2 config-lite/ 184
5.6 測試/ 184
5.6.1 單元測試/ 184
5.6.2 co-mocha和co-supertest 185
5.7 開發一個論壇係統/ 189
5.7.1 基礎項目搭建/ 189
5.7.2 路由和功能設計/ 193
5.7.3 自定義模型/ 194
5.7.4 theme的設計/ 200
5.7.5 注冊/ 206
5.7.6 登錄與登齣/ 213
5.7.7 主頁與版塊/ 216
5.7.8 用戶頁/ 221
5.7.9 發錶頁與話題頁/ 222
5.7.10 測試/ 228
5.7.11 部署 231
5.8 小結/ 233
5.9 參考文獻/ 233
第6章 Node.js測試服務搭建 /235
6.1 概述/ 235
6.1.1 目的/ 2356.1.2 Pixbi/ 236
6.2 搭建後端測試服務/ 238
6.2.1 單元測試/ 239
6.2.2 功能性測試/ 259
6.2.3 可拓展性測試/ 260
6.3 搭建前端測試服務/ 261
6.3.1 PhantomJS/ 262
6.3.2 BrowserStack/ 266
6.3.3 Adobe CEP(Common Extensibility Platform)/269
6.4 加入持續集成工作流/ 271
6.5 小結/ 274
6.6 參考資料/ 276
第7章 使用Node.js綁定C語言庫——51Degrees.node /277
7.1 開發背景/ 277
7.2 預備知識/ 279
7.2.1 51Degrees-C /279
7.2.2 C/C++中的Node.js API/ 282
7.2.3 使用nan/ 284
7.3 編碼/ 285
7.3.1 項目初始化/ 285
7.3.2 創建v8膠水層接口/ 286
7.3.3 創建JavaScript代碼/ 293
7.4 構建與發布/ 294
7.4.1 node-gyp與binding.gyp/ 294
7.4.2 發布/ 296
7.5 如何從nan 1.x升級到nan 2.x /296
7.6 後記/ 298
前言/序言
自本書第1季《Node.js實戰(雙色)》齣版以來,JavaScript界又發生瞭許多重大事件:React.js和AngularJS 2.0相繼齣現;ES6於2015年年中正式定稿;io.js從Node.js社區中分裂齣來,後又與其閤並。截至本書齣版時,npm上有接近18萬的模塊,是去年同期的3倍,周下載量接近5.6億次,是2014年同期的10倍。越來越多的創業公司和大公司都不同程度地使用瞭Node.js, Node.js已經成為一門成熟、穩定且具有獨特魅力的技術。
延續《Node.js實戰(雙色)》的寫作思路,本書不會從頭講解Node.js是什麼,而是麵嚮有一定Node.js基礎的讀者,建議讀者把本書當作入門與進階之間的過渡書籍來閱讀。本書通過7個實例來講解Node.js在不同場景下的應用,通過閱讀本書,讀者可以快速熟悉並使用Node.js進行開發。本書由4位作者共同編寫,其中吳中驊完成瞭第1、3章的創作,雷宗民完成瞭第2、4章的創作,趙坤完成瞭第5章的創作,劉亞中完成瞭第6、7章的創作。
第1章主要介紹瞭如何使用Docker快速發布一個Nginx+Express+Redis項目,然後使用Jenkins進行簡單的持續集成發布工作,其中介紹瞭Docker的基礎概念、用法和Jenkins的安裝配置方法。
第2章介紹瞭當前比較流行的OAuth2認證。OAuth2認證是當API服務器對外提供服務時,驗證API使用者權限的有效的認證方式。本章主要介紹瞭使用Node.js搭建一個基本的API服務器所涉及的組件、方法和技術細節。
第3章主要介紹瞭如何在Node.js中使用消息隊列軟件RabbitMQ來解決Web服務器或應用服務器間的通信問題。對於服務器間的跨語言通信,以前一般采用XMLRPC方式,而現在比較流行采用HTTP的RESTful方式,使用RabbitMQ能夠很靈活地處理這些事情。
第4章以一個靜態博客係統構建工具作為實例,介紹如何使用Node.js的commander模塊來編寫一個命令行工具。
第5章介紹瞭ES6中生成器、yield,以及Node.js下一代Web開發框架Koa及其中間件的用法,最後通過搭建一個簡單的論壇係統,讓讀者從實踐中學習如何基於Koa快速開發Web應用。
第6章分享瞭作者在一傢時尚雜誌相關的互聯網創業團隊工作的部分經曆:為該團隊搭建一套較基礎的Node.js測試服務,測試範圍涵蓋服務器、瀏覽器、Mag+、Adobe InDesign等平颱。希望讀者通過這個分享能夠找到一種更為全麵的方式去保證項目代碼的質量。
第7章分享瞭作者與51Degrees團隊遠程工作的細節,可以讓讀者大緻瞭解如何將一個已有的C/C++代碼庫拓展到Node.js平颱上進行使用。
感謝電子工業齣版社博文視點張國霞編輯的熱心幫助和指導;感謝神豬、河蟹、AKI、何翊宇(dead_horse)、Kenneth Kan、Baptiste Gaillard、Jorn Zaefferer和Fish對本書的校驗;再次感謝何翊宇為本書慷慨作序。
如果您對本書有任何評論或建議,可加入本書官方QQ群(156627943)進行討論,或者到讀者反饋網站http://nodejs.ucdok.com進行反饋,真誠歡迎您的意見與反饋。
Node.js實戰(第2季) 下載 mobi epub pdf txt 電子書