Node.js 模組參考手冊

錢逢祥、蔡政崇、楊傑文

  • 出版商: 松崗
  • 出版日期: 2015-04-14
  • 定價: $580
  • 售價: 7.0$406
  • 語言: 繁體中文
  • 頁數: 520
  • ISBN: 9572243896
  • ISBN-13: 9789572243893

立即出貨 (庫存 > 10)

買這商品的人也買了...

產品描述

一本Node.js開發者必備的參考書~
無論你是新手還是資深工程師,都可以透過本書的綜合性整理,快速找到適當的解決方案

你知道Node.js可以開發BitTorrent Client嗎?
你知道Node.js也可以用來開發SSH伺服器嗎?
又或者你知道Node.js可以拿來開發USB驅動程式和檔案系統驅動程式嗎?
甚至是可以開發OpenCV的應用程式,用來辨識人臉等影像分析?
更重要的是,不需要幾行程式就可以開發出來,你相信嗎?
 
本書除了包括了一些常用的NPM模組的介紹,以及各種解決方案的統整,還有一些Node.js重要觀念解說,可說是集各種技術之大全。讓開發者可以從中快速尋找需求的解決方案,以及從中找到改善開發過程的效率和品質的方法,大量減少開發人員去網路上搜尋和研究的時間。對一般的開發人員來說,這是一本極為有用的參考手冊;對於已經精熟Node.js的人來說,這是一本增廣見聞的捷徑。
 
你知道Node.js可以開發BitTorrent Client嗎?
你知道Node.js也可以用來開發SSH伺服器嗎?
又或者你知道Node.js可以拿來開發USB驅動程式和檔案系統驅動程式嗎?
甚至是可以開發OpenCV的應用程式,用來辨識人臉等影像分析?
更重要的是,不需要幾行程式就可以開發出來,你相信嗎?
 
本書除了包括了一些常用的NPM模組的介紹,以及各種解決方案的統整,還有一些Node.js重要觀念解說,可說是集各種技術之大全。讓開發者可以從中快速尋找需求的解決方案,以及從中找到改善開發過程的效率和品質的方法,大量減少開發人員去網路上搜尋和研究的時間。對一般的開發人員來說,這是一本極為有用的參考手冊;對於已經精熟Node.js的人來說,這是一本增廣見聞的捷徑。

目錄大綱

第0章 窺探Node.js世界
在正式了解Node.js的各種模組前,在本章節將討論一些基礎知識,以及簡單的提要和閱讀本書前的相關說明。
第1章 文件格式和語法分析器
本章將會一一討論如何使用Node.js處理各類文件格式,搭配許多常用的NPM模組,我們就可以輕易存取或解析不同的文件格式。
 
第2章 資料結構與演算法
坊間的書籍,多半都是以C/C++或Java這類語言在探討演算法的原理與實作,而以JavaScript 語言角度切入的書並不多,所以,除了正規科班出身的程式人員外,一般JavaScript開發者鮮少有機會理解演算法。有鑑於此,本節將討論JavaScript的資料結構,以及各類演算法相關知識。
 
第3章 日期與時間
在程式應用上,處理各種資訊時,日期與時間的處理也都相當常見。本章節將會詳細介紹JavaScript內建的Date物件以及目前在NPM模組上總是前三名流行的Moment.js套件。
 
第4章 數學計算
使用電腦進行數學計算本來就是件常見的事,因此,一個程式語言多少都會提供一些方法來處理數學計算的需求。雖然JavaScript語言本身並不善於密集式的資料計算,但仍然有很多方法及很多人寫第三方Node.js模組來達成資料計算的任務。本章將要探討一些常用的數學方法及模組,以便在需要進行數值分析或計算的場合使用。
 
第5章 檔案系統
不論今天使用哪一種作業系統,在系統中都存在著檔案系統的設計,而檔案系統存在的目的,是為了提供更有效率的方法來存取磁碟(儲存、查詢、讀取)。本章節我們將著重在使用Node.js對檔案與目錄進行操作,並不會再深入的描述檔案系統的相關知識,如果讀者有興趣,建議可參考作業系統原理的相關書籍。
 
第6章 資料庫
資料庫對人們的意義重大,一個成熟的程式技術,也肯定與資料庫脫不了太大關係,也是一個很重要的課題。本章將一一列出各種常見資料庫系統,並一一介紹Node.js如何支援這些資料庫系統。
 
第7章 資料壓縮與封存
Node.js本身提供了內建的核心模組來處理壓縮的需求,因此,本章將探討如何去壓縮或是解開各類的壓縮檔。
 
第8章 加密與認證
Node.js 內建的模組機制中有加解密與驗證模組(Crypto)可供使用,底層採用OpenSSL 函式庫的實作,讓我們能在HTTPS或HTTP連線中能有加密資料的方法,此套安全機制用意是保證資料在網路傳輸過程中能不被監聽、偽造和竄改。除了連線需求外,我們也可以透過Crypto模組實現Hash、Hmac、Cipher、Decipher、Sign以及Verify等加解密方法。
 
第9章 行程與執行緒
廣義說來,寫一支程式就是在實作並控制一支行程,我們需要決定這支行程的狀態和運作模式,如是否背景執行、是否會分裂成數個子行程、是否建立執行緒等。本章將介紹Node.js 中行程的管理與操作,以及各種相關的模組和解決方案。
 
第10章 網路
雖然,除了Node.js本身內建支援的HTTP和HTTPS外,其他網路服務的相關協定API都沒有被內建,但值得稱道的是,Node.js擁有直接操作Socket的網路能力,所以非常容易用來開發TCP/IP的各種網路服務和應用,而且,開發各種客戶端(Client)應用程式與各種類型的Server進行連接,也是Node.js可以做到的事。因此,世界上有許多開發者,已經實作了各式各樣的模組來支援各種協定。本章將整理一些常見的網路應用,並說明如何使用前人的模組成果,開發各類網路應用程式。
 
第11章 網頁框架
Node.js從一開始就是標榜後端應用程式框架,網站系統的相關應用和生態發展相當快速且多元,尤其是網頁框架之多更是眼花撩亂。本章節將會介紹一些當紅或主流的網站框架如Express,以及被視為下一代的網站框架Koa。此外,本章將探討各類Node.js與網站前後端的相關技術,如:Browserify等這類前後端整合的技術。
 
第12章 郵件發送
而電子郵件是基於SMTP這個通訊協定所發展出來的,就像是一個網路界的郵政系統標準,除了郵件伺服器和伺服器之間是透過SMTP當作溝通標準外,從客戶端寄送電子郵件到伺服器,也多半是使用SMTP 通訊協定。本章將討論一些電子郵件機制的解決方案,以及相關功能模組。
 
第13章 網路爬蟲
在開始真正分析資料前,我們需要利用網路爬蟲的相關技術,把資料從網路上各處下載收集回來,並從中擷取我們想要的資料,這才是首要的工作。所以,本章將討論這樣的網路爬蟲相關技術。
 
第14章 一般系統應用
Node.js可以用來開發非常多領域或不同應用的程式,包括了系統程式和系統相關應用,也都是Node.js可觸及的地方。我們有時會創造一些命令,給其他開發者或使用者去使用;有時會需要將程式設定存成設定檔;有時需要將很多訊息和問題給記錄起來;或是在一個長期運行的系統中,我們要排程去定期做一些事。本章節將提及這些系統應用,及這些系統應用所會使用到的工具或相關模組資源,以便於開發者更快速的設計自己的系統相關應用。
 
第15章 國際化與在地化
這年頭,網路應用程式所服務的對象已經不只是侷限於特定地區、使用特定語言的人,而是要同時服務全世界的人們。因此,國際化與在地化的工作變得相當重要,為程式加上各種不同地區及語系的支援是必須要做的工作。Node.js擁有一些NPM模組,讓我們可以快速針對自己的應用程式,進行多國語系的支援,本章將進行一些介紹及說明。
 
第16章 多媒體應用
人類依賴各種感官來接觸這世界,其中眼睛與耳朵最為敏銳,因此影音多媒體一直是資訊科技中最吸引人的議題,包括了處理圖形圖像、編輯產生影片動畫,以及各種後製工作。本章節將來探討如何用Node.js 來處理各種多媒體的工作,並整理成一系列的範例和說明,讓讀者能快速將相關技術引入並應用於自己的專案之中。
 
第17章 訊息佇列
訊息佇列的現成解決方案相當多,常見的RabbitMQ、ActiveMQ之外,也有一些特殊的實作,如標榜非中心集權式的ZeroMQ。本章將試著探討,如何使用Node.js來操作這些訊息佇列的解決方案。
 
第18章 除錯與測試
除錯和測試是一個程式專案很重要的一環,也是產品化最後一道工作,以及品質最後的一道防線。所以很多人為了Node.js 設計出各式各樣的模組和工具,以協助開發人員管理和除錯。這些工具和模組,除了處理本身程式的問題外,也有很多是記錄程式問題,或是高亮化(Highlighting)除錯訊息,讓開發人員能更容易看清楚並找到問題所在。
 
第19章 特殊應用
Node.js有太多東西和應用,除了傳統的網站相關用途的應用,以及後端系統的開發,近年來也被應用在嵌入式系統(Embedded System)的開發,扮演軟硬體整合中不可缺少的一門技術。本章節會談論和整理一些特殊的應用和功能支援,讓讀者有機會可以為自己的程式專案或服務,加上一些神奇應用。
 
第20章 雜項
Node.js發展極為快速,應用也太多太廣,我們可以發現,NPM或網路上有太多常用或有用的工具和模組。由於數量太多、範圍也太廣,難以一一分類,我們就把它列為雜項,在本章進行說明。
 
第21章 控制流/異步
流程控制一直是JavaScript和Node.js開發上的一大課題,因為語言非同步(或稱異步Asynchronous)的特性,使得開發者必須使用很多的回調函數(Callback Function),讓程式碼橫向發展,除了太多Callback很難維護外,在程式的邏輯處理流程上,也不易於控制和除錯,這也是為什麼我們會需要很多的模組和方法,來解決這個問題。本章將列舉和一一說明常用的模組和API,幫助開發者控制流程和更好的管理非同步的機制。
 
第22章 模組機制
本章將探討如何選擇模組,並討論評估模組可用性的一些基本方法,然後討論如何使用NPM以及相關的命令和資源。
 
第23章 建置與部署
在經過漫長的開發,最終要將我們的Node.js應用程式部署到正式環境(Production),並使其正常運行,這才算是告一個段落。然後,我們緊接著是面對服務維運(Operation)的問題。此外,專案開發的過程中,我們也要處理程式版本管理的問題,以及多人共同開發的協同工作。
 
第24章 跨平台支援
Node.js本身是跨平台的框架,這意味著用它開發出來的應用程式,都可以輕易的在不同的作業系統平台上運行起來。但是在不同的系統平台之間,總有著許多不同的系統機制、不同的系統呼叫,甚至是存在一些在特定平台獨有、特定平台缺少的功能支援,使得在跨平台應用程式開發過程中,常在面對同一個需求時,在不同平台上需要採用不同的方案來達成。本章節將討論一些在跨平台應用程式開發的過程中,開發者可能面對的課題,以及相應的解決方案和模組。
 
第25章 第三方認證與授權
人人都有習慣或大量使用的幾種網路服務,最常見的網路服務不外乎是Yahoo、Google、Facebook或是Skype等。這些服務供應商,對我們而言,就是一個進入網路世界的入口,我們只需要登入自己在這服務上的帳號密碼。更甚至,我們期望只要這一組帳號密碼,就可以登入所有的網路服務。這是可行的,如果我們想要我們的網站服務,可以支援第三方的認證及授權,就可以允許使用者使用其他網站服務的帳號,註冊並登入我們的線上服務。本章我們將來進行探討。
 
附錄A io.js
最近全世界社群掀起一陣鬧哄哄的爭論,探討著一項新的專案計畫io.js,這項計畫與Node.js息息相關,甚至可能影響著未來Node.js的發展。本附錄將會介紹如何安裝以及跨出那陌生的第一步。