Node Web開發

Node Web開發

《node web開發》是基於node 開發web 套用的實用指南,全書共分6章,通過示例詳盡介紹了node的背景、原理及套用方法。全書內容涉及node 簡介、node 安裝、node 模組、實現不同版本的簡單套用、實現簡單的web 伺服器和eventemitter,以及數據存儲和檢索。另外,本書涵蓋了node 伺服器端開發的主要挑戰及應對方案。

出版信息

原書名: Node Web Development

原出版社: Packt Publishing

作者: (美)David Herron [作譯者介紹]

譯者: 鄢學鵾 吳天豪 廖健

叢書名: 圖靈程式設計叢書

出版社:人民郵電出版社

ISBN:9787115278326

上架時間:2012-4-16

出版日期:2012 年4月

開本:16開

頁碼:104

版次:1-1

內容簡介

node 是一個伺服器端的javascript 解釋器,是構建快速回響、高度可擴展網路套用的輕量高效的平台。node 使用事件驅動和非阻塞的i/o 模型,非常適合數據密集、對實時回響要求高的分散式套用。微軟、ebay、linkedin、雅虎等世界知名公司及網站均有使用node 的成功案例。

《node web開發》適合web 前、後端開發人員學習參考。

目錄

《node web開發》

第1章 node入門 1

1.1 node能做什麼 1

1.2 為什麼要使用node 3

1.2.1 架構問題:執行緒,還是異步事件驅動 4

1.2.2 性能和利用率 5

1.2.3 伺服器利用率、成本和綠色web託管服務 6

1.3 node、node.js還是node .js 7

1.4 小結 7

第2章 安裝並配置node 8

2.1 系統要求 8

2.2 在符合posix標準的系統上安裝 9

2.3 在mac os x上安裝開發者工具 9

2.3.1 在home目錄下安裝 9

2.3.2 在系統級目錄下安裝node 11

2.3.3 在mac os x上使用macports安裝 12

2.3.4 在mac os x上使用homebrew安裝 12

2.3.5 在linux上使用軟體包管理系統安裝 12

2.3.6 同時安裝並維護多個node 13

2.4 驗證安裝成功與否 14

.2.4.1 node命令行工具 14

2.4.2 用node運行簡單的腳本 15

2.4.3 用node啟動伺服器 16

2.5 安裝npm——node包管理器 16

2.6 系統啟動時自動啟動node伺服器 17

2.7 小結 22

第3章 node模組 23

3.1 什麼是模組 23

3.1.1 node模組 24

3.1.2 node解析require ('module')的方式 24

3.2 node包管理器 28

3.2.1 npm包的格式 29

3.2.2 查找npm包 30

3.2.3 使用npm命令 31

3.2.4 node包版本的標識和範圍 38

3.2.5 commonjs模組 39

3.3 小結 40

第4章 幾種典型的簡單套用 41

4.1 math wizard 41

4.2 不依賴框架的實現 41

4.2.1 路由請求 42

4.2.2 處理url查詢參數 43

4.2.3 乘法運算 44

4.2.4 其他數學函式的執行 45

4.2.5 擴展math wizard 48

4.2.6 長時間運行的運算(斐波那契數) 48

4.2.7 還缺什麼功能 51

4.2.8 使用connect框架實現math wizard 52

4.2.9 安裝和設定connect 52

4.2.10 使用connect 53

4.3 使用express框架實現math wizard 55

4.3.1 準備工作 55

4.3.2 處理錯誤 59

4.3.3 參數化的url和數據服務 60

4.4 小結 64

第5章 簡單的web伺服器、eventemitter和http客戶端 65

5.1 通過eventemitter傳送和接收事件 65

5.2 http sniffer——監聽http會話 67

5.3 基本的web伺服器 69

5.4 mime類型和mime npm包 78

5.5 處理cookie 79

5.6 虛擬主機和請求路由 79

5.7 傳送http客戶端請求 79

5.8 小結 81

第6章 存取數據 83

6.1 node的數據存儲引擎 83

6.2 sqlite3——輕量級的進程內sql引擎 83

6.2.1 安裝sqlite 3 83

6.2.2 用sqlite3實現便簽套用 84

6.2.3 在node中使用其他sql資料庫 95

6.3 mongoose 96

6.3.1 安裝mongoose 96

6.3.2 用mongoose實現便簽套用 97

6.3.3 對mongodb資料庫的其他支持 102

6.4 如何實現用戶驗證 102

6.5 小結 104

前言

歡迎光臨Node(也叫Node.js)開發的世界。Node是一種新興的軟體開發平台,它將JavaScript從Web瀏覽器移植到常規的伺服器端。Node運行在Chrome的高速V8引擎上,並附帶了一個快速、健壯的異步網路I/O組件庫。Node主要用於構建高性能、高可擴展的伺服器和客戶端套用,以實現真正“實時的Web套用”。

在經過數年嘗試用Ruby和其他語言實現Web伺服器組件之後,Ryan Dahl在2009年開發了Node平台。這個探索使他從使用傳統的、基於執行緒的並發模型轉向使用事件驅動的異步系統,因為後者更簡單(多執行緒系統以難於開發著稱),系統開銷更低(與對每個連線維護一個執行緒相比),因而能提高相應的速度。Node旨在提供一個“創建可擴展網路伺服器的簡單方式”。這個設計受到了Event Machine(Ruby)和Twisted框架(Python)的影響,並和它們有些類似。

本書致力於講述如何用Node構建Web套用。我們會在書中介紹快速學習Node時一些必需的重要概念。本書會教你編寫真正的套用,剖析其工作原理,並討論如何在程式中套用這些理念。我們需要安裝Node和npm,學習安裝和開發npm包及Node模組。此外,我們還會開發一些套用,度量長時間運行的計算在Node的事件循環中的回響能力,介紹將高負載的工作分派到多個伺服器的方法,並介紹Express框架。

本書內容

第1章“Node入門”,介紹了Node平台。這一章講述了Node的用途、技術構架上的選擇、Node的歷史和伺服器端JavaScript的歷史,然後介紹為什麼JavaScript仍將受困於瀏覽器。

第2章“安裝並配置Node”,介紹如何配置Node開發環境,包括多種從源碼編譯和安裝的場景,還會簡單介紹在開發環境中如何部署Node。

第3章“Node模組”,解釋了作為開發Node套用基本單位的模組。我們會全面介紹並開發Node模組。然後進一步介紹Node包管理器npm,給出一些使用npm管理已安裝包的例子,還將涉及開發npm包並將其發布出來供他人使用。

第4章“幾種典型的簡單套用”,在讀者已經有一些Node基礎知識後,開始探索Node套用的開發。我們會分別使用Node、Connect中間件框架和Express套用框架開發一個簡單的套用。雖然套用比較簡單,但是我們可以通過其開發探索Node的事件循環,處理長時間的運算,了解異步和同步算法以及如何將繁重的計算交給後台伺服器。

第5章“簡單的Web伺服器、EventEmitter和HTTP客戶端”,介紹了Node里的HTTP客戶端和伺服器對象。我們會在開發HTTP伺服器和客戶端套用的同時全面深入介紹HTTP會話。

第6章“存取數據”,探討大部分套用都需要的長期可靠的數據存儲機制。我們會用SQL和MongoDB資料庫引擎實現一個套用。在此期間,我們將用Express框架實現用戶驗證,更好地展示出錯頁面。

閱讀要求

目前,我們一般會採用源碼的方式安裝Node,這種方式可以很好地用在類Unix和符合POSIX標準的系統上。當然,在接觸Node之前,謙遜的心態是必需的,但最為重要的事情還是讓大腦供血充足。

從源碼安裝的方式需要一個類Unix或類POSIX系統(比如Linux、Mac、FreeBSD、OpenSolaris等)、新的C/C++編譯器、OpenSSL庫和Python 2.4或更新版本。

Node程式可以用任何文本編輯器來寫,不過一個能處理JavaScript、HTML、CSS等的文本編輯器會更有幫助。

儘管本書介紹的是Web套用開發,但你並不需要擁有一個Web伺服器。Node有自己的Web伺服器套件。

讀者對象

本書寫給所有想在一個新的軟體平台上開拓新編程模式的軟體工程師。

伺服器端程式設計師或許能看到一些新奇的概念,對Web套用開發產生新的理解。JavaScript是一門強大的語言,Node的異步特性發揮了JavaScript的優勢。

瀏覽器端JavaScript“攻城師”或許會覺得在Node中使用JavaScript和編寫與DOM操作無關的JavaScript代碼很有趣。(Node平台上沒有瀏覽器,所以也沒有DOM,除非你安裝JSDom。)

雖然本書各章內容由淺入深,循序漸進,但到底如何閱讀本書悉聽尊便。

本書需要讀者知道如何編寫軟體,並且對JavaScript等程式語言有所了解。

排版約定

在本書中,讀者會發現不同的文本樣式。下面是這些樣式的示例和說明。

正文中的代碼使用特殊字型:“http對象封裝HTTP協定,它的http.createServer方法會創建一個完整的Web伺服器,而.listen方法用於監聽特定的連線埠。”

新術語及重要辭彙都會加粗顯示。你將在螢幕上看到的文字,比如選單或對話框中的文字,會這樣在正文中提到:“一個真正安全的系統至少會有用戶名和密碼輸入框。不過,我們這裡就直接讓用戶單擊Login按鈕了。”

讀者反饋

我們始終歡迎來自讀者的反饋意見。我們想知道讀者對本書的看法,讀者喜歡哪些內容或不喜歡哪些內容。讀者真正深有感觸的反饋,對於我們開發圖書產品至關重要。

讀者服務

現在你已是Packt引以為榮的讀者了,因此我們特別要交待幾件事,以保障你作為讀者的最大權益。

下載示例代碼

在官方網站通過自己的賬號購買圖書的讀者,可以下載所有已購買圖書的代碼 。如果這本書是你在其他地方購買的,訪問官方網站並註冊,我們將通過電子郵件將相關檔案傳送給你。

勘誤

雖然我們會全力確保本書內容的準確性,但錯誤仍在所難免。如果你發現了本書中的錯誤(包括文字和代碼錯誤),而且願意向我們提交這些錯誤,我們會十分感激。這樣一來,不僅可以減少其他讀者的疑慮,也有助於本書後續版本的改進。要提交錯誤,請訪問官方網站,選擇相關圖書,單擊errata submission form連結,然後輸入勘誤信息。經過驗證後,你提交的勘誤信息就會添加到已有的勘誤列表中。要查看已有的勘誤信息,請訪問官方網站並選擇相關圖書。

反盜版聲明

網上各種形式的盜版是一直存在的問題。Packt非常重視著作權和許可證的保護。如果你在網上遇到以任何形式非法複製的我方作品,請儘快告知我們相關的地址或網站名稱,以便我們採取補救措施。

相關詞條

相關搜尋

熱門詞條

聯絡我們