你知道Node.js可以開發BitTorrent Client嗎?
你知道Node.js也可以用來開發SSH伺服器嗎?
又或者你知道Node.js可以拿來開發USB驅動程式和檔案系統驅動程式嗎?
甚至是可以開發OpenCV的應用程式,用來辨識人臉等影像分析?
更重要的是,不需要幾行程式就可以開發出來,你相信嗎?
本書除了包括了一些常用的NPM模組的介紹,以及各種解決方案的統整,還有一些Node.js重要觀念解說,可說是集各種技術之大全。讓開發者可以從中快速尋找需求的解決方案,以及從中找到改善開發過程的效率和品質的方法,大量減少開發人員去網路上搜尋和研究的時間。對一般的開發人員來說,這是一本極為有用的參考手冊;對於已經精熟Node.js的人來說,這是一本增廣見聞的捷徑。
本書特色
一本Node.js開發者必備的參考書~
無論你是新手還是資深工程師,都可以透過本書的綜合性整理,快速找到適當的解決方案
Node.js重要觀念解說
常用NPM模組介紹以及各種解決方案的統整
流程控制和非同步的機制管理
部署Node應用程式到雲端平台
跨平台應用程式開發問題的解決方案
作者簡介:
錢逢祥(Fred Chien)
長年活躍在開放原始碼(Open Source)社群的開發者,也是個科技創業家。目前在國內積極參與Node.js的推廣以及教育訓練,熟悉Linux系統、網站系統開發、嵌入式系統或軟硬體整合相關技術。
蔡政崇(Wesley Tsai)
緯創資深工程師,在國內參與Node.js的推廣以及教育訓練,專注於網站系統技術、嵌入式系統和跨領域應用。
楊傑文(Chuck Yang)
穿梭在歷史文化與現代科技之間,安靜的看著這變動快速、複雜、凌
亂,卻又有一定規則的世界,試著用雙手實踐自己對於世界的想像,盡著自己的努力讓世界而有所不同。
各界推薦
名人推薦:
JavaScript Developer Conference Taiwan 共同創辦人 吳彥翰(Ryan Wu) 推薦~
這本書不難讀,而且含金量頗高,加上範例與實際上的開發行為非常貼近,我覺得非常適合JavaScript新手、想開眼界的Node.js開發者、想學習更深入開發網路服務的IT人員、或是任何職位希望拓展技術廣度的主管與企業經營者,這都是一本必蒐藏的好書。
hiiir 時間軸 主任工程師 謝宗穎 推薦~
如果你是初學者,這本書涵蓋了大部份在開發工作中所會遇到的應用以及對應的處理方向。若是有一定Node.js經驗的開發者,必會對這本書的內容充滿親切感,Node.js開發中所要面對的問題,當你需要時,皆濃縮在裡面。若你是對其他語言熟悉,想要轉戰Node.js,可以透過本書了解到在Node.js的世界中各種狀況的應對方式。
Node.js資深開發者、Mokoversity創辦人 Jollen 推薦~
Node.js 擁有豐富的社群資源,眾多的Node.js開放源碼模組,是Node.js生態的最大特色。這本書也為讀者精選常用的Node.js模組,對於初學者來說,可以省下很多在網路上搜尋相關資源的時間。對於這些重要的模組,書上都有詳細且深入的教學。這本書可說是Node.js Modules的Editor's Choice。
名人推薦:JavaScript Developer Conference Taiwan 共同創辦人 吳彥翰(Ryan Wu) 推薦~
這本書不難讀,而且含金量頗高,加上範例與實際上的開發行為非常貼近,我覺得非常適合JavaScript新手、想開眼界的Node.js開發者、想學習更深入開發網路服務的IT人員、或是任何職位希望拓展技術廣度的主管與企業經營者,這都是一本必蒐藏的好書。
hiiir 時間軸 主任工程師 謝宗穎 推薦~
如果你是初學者,這本書涵蓋了大部份在開發工作中所會遇到的應用以及對應的處理方向。若是有一定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的發展。本附錄將會介紹如何安裝以及跨出那陌生的第一步。
第0章 窺探Node.js世界
在正式了解Node.js的各種模組前,在本章節將討論一些基礎知識,以及簡單的提要和閱讀本書前的相關說明。
第1章 文件格式和語法分析器
本章將會一一討論如何使用Node.js處理各類文件格式,搭配許多常用的NPM模組,我們就可以輕易存取或解析不同的文件格式。
第2章 資料結構與演算法
坊間的書籍,多半都是以C/C++或Java這類語言在探討演算法的原理與實作,而以JavaScript 語言角度切入的書並不多,所以,除了正規科班出身的程式人員外,一般JavaScript開發者鮮少有機會理解演算法。有鑑於此,本節將討論JavaSc...
購物須知
關於二手書說明:
商品建檔資料為新書及二手書共用,因是二手商品,實際狀況可能已與建檔資料有差異,購買二手書時,請務必檢視商品書況、備註說明及書況影片,收到商品將以書況影片內呈現為準。若有差異時僅可提供退貨處理,無法換貨或再補寄。
商品版權法律說明:
TAAZE 單純提供網路二手書託售平台予消費者,並不涉入書本作者與原出版商間之任何糾紛;敬請各界鑒察。
退換貨說明:
二手書籍商品享有10天的商品猶豫期(含例假日)。若您欲辦理退貨,請於取得該商品10日內寄回。
二手影音商品(例如CD、DVD等),恕不提供10天猶豫期退貨。
二手商品無法提供換貨服務,僅能辦理退貨。如須退貨,請保持該商品及其附件的完整性(包含書籍封底之TAAZE物流條碼)。若退回商品無法回復原狀者,可能影響退換貨權利之行使或須負擔部分費用。
訂購本商品前請務必詳閱
退換貨原則、
二手CD、DVD退換貨說明。