Google御用網頁語言Node.js
出版信息
郭家寶 / 佳魁資訊 / 2013-4-26 / NT 490
内容简介
這是一本 Node.js 的入門教學,寫給想要學習 Node.js,但沒有任何系統的經驗的開發者。如果你聽說過 Node.js,並被它許多神奇的特性吸引,本書就是為你準備的。
透過閱讀本書,你可以對 Node.js 有全面的認識,學會如何用 Node.js 程式設計,了解事件驅動、非同步式 I/O 的程式設計模式,同時還可以了解一些使用JavaScript 進行函數式程式設計的方法。
建議你親自執行書中的每一段程式。除此之外,你最好自己用 Node.js 做一個專案,因為透過實作你會遇到很多問題,解決這些問題可以大幅加深對 Node.js 的了解。
本書的每一章最後都有一個參考資料小節,裡面有很多有價值的資料,有興趣不妨繼續深入閱讀。在閱讀本書的過程中,請不要忽略附錄B,在這裡你會了解到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 程式風格的一些約定,遵守這些約定可以讓你的程式更清晰、容易,同時也有利於介面開發的統一。該附錄還分享了一些開發經驗,可以讓程式避免很多意外錯誤和效能損失。
作者简介
郭家寶 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 繼承