本書是寫給想要學習 Node.js,但沒有任何系統的經驗的開發者。如果你聽說過 Node.js,並被它許多神奇的特性吸引,本書就是為你準備的Node.js入門教學。
透過閱讀本書,你可以對 Node.js 有全面的認識,學會如何用 Node.js 程式設計,了解事件驅動、非同步式 I/O 的程式設計模式,同時還可以了解一些使用JavaScript 進行函數式程式設計的方法。
建議你親自執行書中的每一段程式。除此之外,你最好自己用 Node.js 做一個專案,因為透過實作你會遇到很多問題,解決這些問題可以大幅加深對 Node.js 的了解。
本書的每一章最後都有一個參考資料小節,裡面有很多有價值的資料,有興趣不妨繼續深入閱讀。在閱讀本書的過程中,請不要忽略附錄B,在這裡你會了解到Node.js 開發的一些程式設計標準,寫出符合社群風格的漂亮程式。
適用:想要學習 Node.js,但沒有任何系統的經驗的開發者。
作者介紹
作者簡介
郭家寶 BYVoid
清華大學電腦系2010級本科生,曾獲得資訊學奧林匹克競賽(NOI)金牌。
他從中學開始涉足開源開發,參與過「漢典網」等許多Web專案的前後端設計開發,同時是Linux輸入法ibus-pinyin的作者。他從2009年Node.js誕生之始,就一直在關注它的發展,有許多使用Node.js建立網站的經驗,活躍于CNode社群。
郭家寶 BYVoid
清華大學電腦系2010級本科生,曾獲得資訊學奧林匹克競賽(NOI)金牌。
他從中學開始涉足開源開發,參與過「漢典網」等許多Web專案的前後端設計開發,同時是Linux輸入法ibus-pinyin的作者。他從2009年Node.js誕生之始,就一直在關注它的發展,有許多使用Node.js建立網站的經驗,活躍于CNode社群。
目錄
前言
第1章 Node.js簡介
1.1 Node.js 是什麼
1.1.1 Node.js 與 JavaScript
1.2 Node.js 能做什麼
1.3 非同步式 I/O 與事件驅動
1.4 Node.js 的效能
1.4.1 Node.js 架構簡介
1.4.2 Node.js 與 PHP + Nginx
1.5 JavaScript 簡史
1.5.1 Netscape 與 LiveScript
1.5.2 Java 與 Javascript
1.5.3 微軟的加入 — JScript
1.5.4 標準化 — ECMAScript
1.5.5 瀏覽器相容性問題
1.5.6 引擎效率革命和 JavaScript 的未來
1.6 CommonJS
1.6.1 服務端 JavaScript 的重生
1.6.2 CommonJS 標準與實現
1.7 參考資料
第2章 安裝和設定Node.js
2.1 安裝前的準備
2.2 快速安裝
2.2.1 Microsoft Windows系統上安裝Node.js
2.2.2 Linux 發行版本上安裝Node.js
2.2.3 Mac OS X上安裝Node.js
2.3 編譯原始程式碼
2.3.1 在 POSIX 系統中編譯
2.3.2 在 Windows系統中編譯
2.4 安裝Node 套件管理員
2.5 安裝多版本管理員
2.6 參考資料
第3章 Node.js 快速入門
3.1 開始用 Node.js 程式設計
3.1.1 Hello World
3.1.2 Node.js 命令列工具
3.1.3 建立 HTTP 伺服器
3.2 非同步式 I/O 與事件式程式設計
3.2.1 阻塞與執行緒
3.2.2 回呼函數
3.2.3 事件
3.3 模組和套件
3.3.1 什麼是模組
3.3.2 建立及載入模組
3.3.3 建立套件
3.3.4 Node.js 套件管理員
3.4 偵錯
3.4.1 命令列偵錯
3.4.2 遠端偵錯
3.4.3 使用 Eclipse 偵錯 Node.js
3.4.4 使用 node-inspector 偵錯 Node.js
3.5 參考資料
第4章 Node.js 核心模組
4.1 全域物件
4.1.1 全域物件與全域變數
4.1.2 process
4.1.3 console
4.2 常用工具 util
4.2.1 util.inherits
4.2.2 util.inspect
4.3 事件驅動 events
4.3.1 事件發射器
4.3.2 error 事件
4.3.3 繼承 EventEmitter
4.4 檔案系統 fs
4.4.1 fs.readFile
4.4.2 fs.readFileSync
4.4.3 fs.open
4.4.4 fs.read
4.5 HTTP 伺服器與用戶端
4.5.1 HTTP 伺服器
4.5.2 HTTP 用戶端
4.6 參考資料
第5章 使用Node.js進行Web開發
5.1 準備工作
5.1.1 使用 http 模組
5.1.2 Express 框架
5.2 快速開始
5.2.1 安裝 Express
5.2.2 建立專案
5.2.3 啟動伺服器
5.2.4 專案的結構
5.3 路由控制
5.3.1 工作原理
5.3.2 建立路由規則
5.3.3 路徑比對
5.3.4 REST 風格的路由規則
5.3.5 控制權轉移
5.4 模版引擎
5.4.1 什麼是模版引擎
5.4.2 使用模版引擎
5.4.3 頁面設定
5.4.4 部分視圖
5.4.5 視圖幫手
5.5 建立微博網站
5.5.1 功能分析
5.5.2 路由規劃
5.5.3 介面設計
5.5.4 使用 Bootstrap
5.6 使用者註冊和登入
5.6.1 存取資料庫
5.6.2 階段支援
5.6.3 註冊和登入
5.6.4 頁面許可權控制
5.7 發表微博
5.7.1 微博模型
5.7.2 發表微博
5.7.3 使用者頁面
5.7.4 首頁
5.7.5 下一步
5.8 參考資料
第6章 Node.js 進階話題
6.1 模組載入機制
6.1.1 模組的型態
6.1.2 按路徑載入模組
6.1.3 透過尋找 node_modules 目錄載入模組
6.1.4 載入快取
6.1.5 載入順序
6.2 控制流
6.2.1 迴圈的陷阱
6.2.2 解決控制流難題
6.3 Node.js 應用部署
6.3.1 記錄檔功能
6.3.2 使用cluster 模組
6.3.3 啟動指令稿
6.3.4 共用80通訊埠
6.4 Node.js 不是銀彈
6.5 參考資料
附錄A JavaScript的進階特性
A.1 作用域
A.1.1 函數作用域
A.1.2 全域作用域
A.2 閉包
A.2.1 什麼是閉包
A.2.2 閉包的用途
A.3 物件
A.3.1 建立和存取
A.3.2 建構函數
A.3.3 上下文物件
A.3.4 原型
A.3.5 物件的複製
附錄B Node.js程式設計標準
B.1 縮排
B.2 行寬
B.3 敘述分隔符號
B.4 變數定義
B.5 變數名稱和屬性名稱
B.6 函數
B.7 引號
B.8 連結陣列的初始化
B.9 等號
B.10 命名函數
B.11 物件定義
B.12 繼承
第1章 Node.js簡介
1.1 Node.js 是什麼
1.1.1 Node.js 與 JavaScript
1.2 Node.js 能做什麼
1.3 非同步式 I/O 與事件驅動
1.4 Node.js 的效能
1.4.1 Node.js 架構簡介
1.4.2 Node.js 與 PHP + Nginx
1.5 JavaScript 簡史
1.5.1 Netscape 與 LiveScript
1.5.2 Java 與 Javascript
1.5.3 微軟的加入 — JScript
1.5.4 標準化 — ECMAScript
1.5.5 瀏覽器相容性問題
1.5.6 引擎效率革命和 JavaScript 的未來
1.6 CommonJS
1.6.1 服務端 JavaScript 的重生
1.6.2 CommonJS 標準與實現
1.7 參考資料
第2章 安裝和設定Node.js
2.1 安裝前的準備
2.2 快速安裝
2.2.1 Microsoft Windows系統上安裝Node.js
2.2.2 Linux 發行版本上安裝Node.js
2.2.3 Mac OS X上安裝Node.js
2.3 編譯原始程式碼
2.3.1 在 POSIX 系統中編譯
2.3.2 在 Windows系統中編譯
2.4 安裝Node 套件管理員
2.5 安裝多版本管理員
2.6 參考資料
第3章 Node.js 快速入門
3.1 開始用 Node.js 程式設計
3.1.1 Hello World
3.1.2 Node.js 命令列工具
3.1.3 建立 HTTP 伺服器
3.2 非同步式 I/O 與事件式程式設計
3.2.1 阻塞與執行緒
3.2.2 回呼函數
3.2.3 事件
3.3 模組和套件
3.3.1 什麼是模組
3.3.2 建立及載入模組
3.3.3 建立套件
3.3.4 Node.js 套件管理員
3.4 偵錯
3.4.1 命令列偵錯
3.4.2 遠端偵錯
3.4.3 使用 Eclipse 偵錯 Node.js
3.4.4 使用 node-inspector 偵錯 Node.js
3.5 參考資料
第4章 Node.js 核心模組
4.1 全域物件
4.1.1 全域物件與全域變數
4.1.2 process
4.1.3 console
4.2 常用工具 util
4.2.1 util.inherits
4.2.2 util.inspect
4.3 事件驅動 events
4.3.1 事件發射器
4.3.2 error 事件
4.3.3 繼承 EventEmitter
4.4 檔案系統 fs
4.4.1 fs.readFile
4.4.2 fs.readFileSync
4.4.3 fs.open
4.4.4 fs.read
4.5 HTTP 伺服器與用戶端
4.5.1 HTTP 伺服器
4.5.2 HTTP 用戶端
4.6 參考資料
第5章 使用Node.js進行Web開發
5.1 準備工作
5.1.1 使用 http 模組
5.1.2 Express 框架
5.2 快速開始
5.2.1 安裝 Express
5.2.2 建立專案
5.2.3 啟動伺服器
5.2.4 專案的結構
5.3 路由控制
5.3.1 工作原理
5.3.2 建立路由規則
5.3.3 路徑比對
5.3.4 REST 風格的路由規則
5.3.5 控制權轉移
5.4 模版引擎
5.4.1 什麼是模版引擎
5.4.2 使用模版引擎
5.4.3 頁面設定
5.4.4 部分視圖
5.4.5 視圖幫手
5.5 建立微博網站
5.5.1 功能分析
5.5.2 路由規劃
5.5.3 介面設計
5.5.4 使用 Bootstrap
5.6 使用者註冊和登入
5.6.1 存取資料庫
5.6.2 階段支援
5.6.3 註冊和登入
5.6.4 頁面許可權控制
5.7 發表微博
5.7.1 微博模型
5.7.2 發表微博
5.7.3 使用者頁面
5.7.4 首頁
5.7.5 下一步
5.8 參考資料
第6章 Node.js 進階話題
6.1 模組載入機制
6.1.1 模組的型態
6.1.2 按路徑載入模組
6.1.3 透過尋找 node_modules 目錄載入模組
6.1.4 載入快取
6.1.5 載入順序
6.2 控制流
6.2.1 迴圈的陷阱
6.2.2 解決控制流難題
6.3 Node.js 應用部署
6.3.1 記錄檔功能
6.3.2 使用cluster 模組
6.3.3 啟動指令稿
6.3.4 共用80通訊埠
6.4 Node.js 不是銀彈
6.5 參考資料
附錄A JavaScript的進階特性
A.1 作用域
A.1.1 函數作用域
A.1.2 全域作用域
A.2 閉包
A.2.1 什麼是閉包
A.2.2 閉包的用途
A.3 物件
A.3.1 建立和存取
A.3.2 建構函數
A.3.3 上下文物件
A.3.4 原型
A.3.5 物件的複製
附錄B Node.js程式設計標準
B.1 縮排
B.2 行寬
B.3 敘述分隔符號
B.4 變數定義
B.5 變數名稱和屬性名稱
B.6 函數
B.7 引號
B.8 連結陣列的初始化
B.9 等號
B.10 命名函數
B.11 物件定義
B.12 繼承
序
前言
這本書講了什麼
本書是一本 Node.js 的入門教學,寫給想了解 Node.js 的開發人員。我的目標是讓讀者透過閱讀本書,學會使用 Node.js 進行 Web 後端開發,同時能熟悉事件驅動的非同步式程式設計風格,以便進一步了解 Node.js 的許多進階特性,以及它所應用的更多領域。
本書共6章,分別討論了 Node.js的背景、安裝和設定方法、基本特性、核心模組以及一些進階主題。除此之外,還有2個附錄,分別介紹了JavaScript 的進階特性和 Node.js 程式設計標準。下面簡要概述各章的主要內容。
第1章:Node.js 簡介
這一章概述了什麼是Node.js。讀過這章後,你將對 Node.js 有一個基本的認識,同時了解它與 JavaScript 的深厚淵源。
第2章:安裝和設定Node.js
這一章說明了如何在各種不同的環境下安裝和設定 Node.js 及其基本執行環境,同時你你可以了解到如何編譯Node.js,以及多版本管理工具。
第3章:Node.js 快速入門
這一章講解Node.js的基礎知識,你將學到如何使用 Node.js 的基本環境和工具進行開發、執行和偵錯。同時,還會講解非同步式I/O與事件式程式設計的一些重要概念,這些概念將貫穿全書。此外這一章還詳細介紹了 Node.js 的模組和套件的系統,這些都是開發中經常會碰到的內容。
第4章:Node.js 核心模組
這一章以全域物件、基本工具、事件發射器、檔案系統和 HTTP 為代表,介紹了 Node.js 最常用的核心模組。你將在後面的章節及以後的開發中經常與這些模組進行處理。
第5章:使用 Node.js 進行 Web 開發
這一章是本書的實作性章節,一步一步教你如何從零開始用 Express 框架建立一個網站,實現路由控制、模版解析、階段管理、資料庫存取等功能,最後建立一個 Web 2.0 微博網站。
第6 章:Node.js 進階主題
這一章有關幾個進階主題,包含模組載入機制、控制流分析和最佳化、生產環境的應用部署等內容,最後還討論了 Node.js 適用的範圍,幫助讀者在今後的開發中作出更好的取捨。
附錄A:JavaScript 的進階特性
這個附錄介紹了 JavaScript 的一些進階特性,如函數作用域、閉包和物件的操作等內容。這些特性在瀏覽器端的JavaScript 開發中並沒有受到應有的重視, 而在 Node.js 中卻十分常見,閱讀這個附錄可以幫助你更進一步地了解並運用 JavaScript 進行複雜的網站開發。
附錄B:Node.js 程式設計標準
這個附錄介紹了 Node.js 程式風格的一些約定,遵守這些約定可以讓你的程式更清晰、容易,同時也有利於介面開發的統一。該附錄還分享了一些開發經驗,可以讓程式避免很多意外錯誤和效能損失。
誰應該閱讀本書
本書的目標讀者是想要學習 Node.js,但沒有任何系統的經驗的開發者。如果你聽說過 Node.js,並被它許多神奇的特性吸引,這本書就是為你準備的。透過閱讀本書,你可以對 Node.js 有全面的認識,學會如何用 Node.js 程式設計,了解事件驅動、非同步式 I/O 的程式設計模式,同時還可以了解一些使用 JavaScript 進行函數式程式設計的方法。
本書假設讀者已經學過至少一種程式語言,對基本的程式語言概念(如變數、函數、遞迴、物件)有所了解。如果你是第一次學習程式語言,我建議你先學一種常見的且容易入門的語言,如 Java 或 C。
如何閱讀本書
熟悉瀏覽器端 JavaScript 的讀者將很容易學會 Node.js 的許多特性,包含事件式程式設計、閉包、回呼函數等,因為這些特性已經在瀏覽器中被廣泛應用。
同時,你還可以學到 Node.js 在Web 開發中的伺服器端與瀏覽器端的結合方式,這無論是對前端設計還是後端開發都是有利的。你還會對 JavaScript 有一個全新的認識,因為服務端的 JavaScript 中沒有 DOM 和 BOM,也不存在瀏覽器之間的相容性問題。
不熟悉 JavaScript但是了解C、Java、C++、C#的讀者將很容易學會 JavaScript 的語言特性及 Node.js 的基本機制,如模組和套件。你需要重視的僅僅是 JavaScript 語言的特別之處,以及伺服器端開發中需要注意的一些要點。
已經非常了解 Web 後端開發(如 PHP、ASP.net、Ruby on Rails、Django 等)的讀者,本書將透過 Node.js 給你一個不同的視野。你會發現 Node.js 和這些傳統的框架有很大的區別,因為它使用了事件式程式設計和非同步 I/O,所以你需要改變一些已有的思維方式。同時,你還能享受到 Web 前後端緊密配合帶來的新鮮感,並可能對 Ajax 有全新的認識。
如果是完全沒有接觸過JavaScript的讀者,建議看完本書的前兩章以後,花點時間到www.w3school.com.cn/js/網站看看 JavaScript 的入門教學。你只要了解基礎知識就行了,本書並不要求你學成一個JavaScript專家。在這之後請閱讀本書的附錄A,了解一下實際開發中可能會遇到的稍微複雜的語言特性。附錄A是為本書量身定做的,你可以從中很快地學會 Node.js 經常使用到的那些特性。如果你想更加深入系統地學習JavaScript,推薦閱讀Mozilla JavaScript指南developer.mozilla.org/en/JavaScript/Guide。
本書從第3章開始介紹如何用 Node.js 開發,你應該仔細閱讀這一章。第4章是一些最基本的模組介紹,有關Node.js 模組的基本風格,這可能會幫助你了解後面介紹的 API。第5章是一個真槍實彈的實戰演練,跟隨這一章的每個步驟你就可以用 Node.js 實現一個真正的 Web 應用,體驗開發的成就感。第6章則是一些進階主題,你會在這裡接觸到 Node.js的一些深層次概念,同時你還將學會如何真正部署 Node.js 應用。
本書的每一章最後都有一個參考資料小節,裡面有很多有價值的資料,有興趣不妨繼續深入閱讀。在閱讀本書的過程中,請不要忽略附錄B,在這裡你會了解到Node.js 開發的一些程式設計標準,寫出符合社區風格的漂亮程式。
如何學習 Node.js
通讀本書,你將學到 Node.js 的很多東西,如果想完全了解它,建議你親自執行書中的每一段程式。所有程式可以在本公司官網www.topteam.cc 上找到。除此之外,你最好自己用 Node.js 做一個專案,因為透過實作你會遇到很多問題,解決這些問題可以大幅加深對 Node.js 的了解。
注意,不要忘了網際網路網上的資源,例如Node.js 的官方 API 文件 nodejs.org/api/。我強烈推薦你去 CNodeJS 社區看看cnodejs.org/,這裡匯集許多優秀的Node.js 開發者。他們每天都在討論著大量有關Node.js 各個方面的主題,你可以在上面獲得很多幫助。同時,CNodeJS 社區的網站也是用 Node.js 寫成的,而且是開放原始碼的,它是一個非常好的讓你了解如何用 Node.js 開發網站的實例。
感謝牟瞳、李垚、周越、鐘音、蕭騏、楊旭東、孫嘉龍、範澤一、宋文傑、續本達、田勁鋒、孟亞蘭和李宇亮。他們為本書的結構、內容、語言表述等方面列出了許多有建設性的意見。
感謝 CNodeJS 社區的賈超、田永強和微軟亞洲研究院的楊懋、VMware 公司的柴可夫。他們不僅幫助審閱本書,還解決許多技術問題,給這本書提出了許多改進方案。
感謝弓辰開發的 Rime 輸入法4,我用它完成了本書的創作。
還要感謝我的朋友徐可哥,楊海玲、謝工、王軍花,她們提供了許多幫助和鼓舞,沒有她們的激勵,我很難頂著極大的學業壓力堅持寫完這本書。
這本書講了什麼
本書是一本 Node.js 的入門教學,寫給想了解 Node.js 的開發人員。我的目標是讓讀者透過閱讀本書,學會使用 Node.js 進行 Web 後端開發,同時能熟悉事件驅動的非同步式程式設計風格,以便進一步了解 Node.js 的許多進階特性,以及它所應用的更多領域。
本書共6章,分別討論了 Node.js的背景、安裝和設定方法、基本特性、核心模組以及一些進階主題。除此之外,還有2個附錄,分別介紹了JavaScript 的進階特性和 Node.js 程式設計標準。下面簡要概述各章的主要內容。
第1章:Node.js 簡介
這一章概述了什麼是Node.js。讀過這章後,你將對 Node.js 有一個基本的認識,同時了解它與 JavaScript 的深厚淵源。
第2章:安裝和設定Node.js
這一章說明了如何在各種不同的環境下安裝和設定 Node.js 及其基本執行環境,同時你你可以了解到如何編譯Node.js,以及多版本管理工具。
第3章:Node.js 快速入門
這一章講解Node.js的基礎知識,你將學到如何使用 Node.js 的基本環境和工具進行開發、執行和偵錯。同時,還會講解非同步式I/O與事件式程式設計的一些重要概念,這些概念將貫穿全書。此外這一章還詳細介紹了 Node.js 的模組和套件的系統,這些都是開發中經常會碰到的內容。
第4章:Node.js 核心模組
這一章以全域物件、基本工具、事件發射器、檔案系統和 HTTP 為代表,介紹了 Node.js 最常用的核心模組。你將在後面的章節及以後的開發中經常與這些模組進行處理。
第5章:使用 Node.js 進行 Web 開發
這一章是本書的實作性章節,一步一步教你如何從零開始用 Express 框架建立一個網站,實現路由控制、模版解析、階段管理、資料庫存取等功能,最後建立一個 Web 2.0 微博網站。
第6 章:Node.js 進階主題
這一章有關幾個進階主題,包含模組載入機制、控制流分析和最佳化、生產環境的應用部署等內容,最後還討論了 Node.js 適用的範圍,幫助讀者在今後的開發中作出更好的取捨。
附錄A:JavaScript 的進階特性
這個附錄介紹了 JavaScript 的一些進階特性,如函數作用域、閉包和物件的操作等內容。這些特性在瀏覽器端的JavaScript 開發中並沒有受到應有的重視, 而在 Node.js 中卻十分常見,閱讀這個附錄可以幫助你更進一步地了解並運用 JavaScript 進行複雜的網站開發。
附錄B:Node.js 程式設計標準
這個附錄介紹了 Node.js 程式風格的一些約定,遵守這些約定可以讓你的程式更清晰、容易,同時也有利於介面開發的統一。該附錄還分享了一些開發經驗,可以讓程式避免很多意外錯誤和效能損失。
誰應該閱讀本書
本書的目標讀者是想要學習 Node.js,但沒有任何系統的經驗的開發者。如果你聽說過 Node.js,並被它許多神奇的特性吸引,這本書就是為你準備的。透過閱讀本書,你可以對 Node.js 有全面的認識,學會如何用 Node.js 程式設計,了解事件驅動、非同步式 I/O 的程式設計模式,同時還可以了解一些使用 JavaScript 進行函數式程式設計的方法。
本書假設讀者已經學過至少一種程式語言,對基本的程式語言概念(如變數、函數、遞迴、物件)有所了解。如果你是第一次學習程式語言,我建議你先學一種常見的且容易入門的語言,如 Java 或 C。
如何閱讀本書
熟悉瀏覽器端 JavaScript 的讀者將很容易學會 Node.js 的許多特性,包含事件式程式設計、閉包、回呼函數等,因為這些特性已經在瀏覽器中被廣泛應用。
同時,你還可以學到 Node.js 在Web 開發中的伺服器端與瀏覽器端的結合方式,這無論是對前端設計還是後端開發都是有利的。你還會對 JavaScript 有一個全新的認識,因為服務端的 JavaScript 中沒有 DOM 和 BOM,也不存在瀏覽器之間的相容性問題。
不熟悉 JavaScript但是了解C、Java、C++、C#的讀者將很容易學會 JavaScript 的語言特性及 Node.js 的基本機制,如模組和套件。你需要重視的僅僅是 JavaScript 語言的特別之處,以及伺服器端開發中需要注意的一些要點。
已經非常了解 Web 後端開發(如 PHP、ASP.net、Ruby on Rails、Django 等)的讀者,本書將透過 Node.js 給你一個不同的視野。你會發現 Node.js 和這些傳統的框架有很大的區別,因為它使用了事件式程式設計和非同步 I/O,所以你需要改變一些已有的思維方式。同時,你還能享受到 Web 前後端緊密配合帶來的新鮮感,並可能對 Ajax 有全新的認識。
如果是完全沒有接觸過JavaScript的讀者,建議看完本書的前兩章以後,花點時間到www.w3school.com.cn/js/網站看看 JavaScript 的入門教學。你只要了解基礎知識就行了,本書並不要求你學成一個JavaScript專家。在這之後請閱讀本書的附錄A,了解一下實際開發中可能會遇到的稍微複雜的語言特性。附錄A是為本書量身定做的,你可以從中很快地學會 Node.js 經常使用到的那些特性。如果你想更加深入系統地學習JavaScript,推薦閱讀Mozilla JavaScript指南developer.mozilla.org/en/JavaScript/Guide。
本書從第3章開始介紹如何用 Node.js 開發,你應該仔細閱讀這一章。第4章是一些最基本的模組介紹,有關Node.js 模組的基本風格,這可能會幫助你了解後面介紹的 API。第5章是一個真槍實彈的實戰演練,跟隨這一章的每個步驟你就可以用 Node.js 實現一個真正的 Web 應用,體驗開發的成就感。第6章則是一些進階主題,你會在這裡接觸到 Node.js的一些深層次概念,同時你還將學會如何真正部署 Node.js 應用。
本書的每一章最後都有一個參考資料小節,裡面有很多有價值的資料,有興趣不妨繼續深入閱讀。在閱讀本書的過程中,請不要忽略附錄B,在這裡你會了解到Node.js 開發的一些程式設計標準,寫出符合社區風格的漂亮程式。
如何學習 Node.js
通讀本書,你將學到 Node.js 的很多東西,如果想完全了解它,建議你親自執行書中的每一段程式。所有程式可以在本公司官網www.topteam.cc 上找到。除此之外,你最好自己用 Node.js 做一個專案,因為透過實作你會遇到很多問題,解決這些問題可以大幅加深對 Node.js 的了解。
注意,不要忘了網際網路網上的資源,例如Node.js 的官方 API 文件 nodejs.org/api/。我強烈推薦你去 CNodeJS 社區看看cnodejs.org/,這裡匯集許多優秀的Node.js 開發者。他們每天都在討論著大量有關Node.js 各個方面的主題,你可以在上面獲得很多幫助。同時,CNodeJS 社區的網站也是用 Node.js 寫成的,而且是開放原始碼的,它是一個非常好的讓你了解如何用 Node.js 開發網站的實例。
感謝牟瞳、李垚、周越、鐘音、蕭騏、楊旭東、孫嘉龍、範澤一、宋文傑、續本達、田勁鋒、孟亞蘭和李宇亮。他們為本書的結構、內容、語言表述等方面列出了許多有建設性的意見。
感謝 CNodeJS 社區的賈超、田永強和微軟亞洲研究院的楊懋、VMware 公司的柴可夫。他們不僅幫助審閱本書,還解決許多技術問題,給這本書提出了許多改進方案。
感謝弓辰開發的 Rime 輸入法4,我用它完成了本書的創作。
還要感謝我的朋友徐可哥,楊海玲、謝工、王軍花,她們提供了許多幫助和鼓舞,沒有她們的激勵,我很難頂著極大的學業壓力堅持寫完這本書。
網路書店
類別
折扣
價格
-
二手書62折$304
-
新書64折$315
-
新書79折$387