Node.js教學
Node.js是什麼?
Node.js是建立在谷歌Chrome的JavaScript引擎(V8引擎)的服務器端平臺。Node.js是由瑞恩·達爾在2009年開發的,它的最新版本是v0.10.36。 Node.js確定在其官方文檔如下:
Node.js®是建立在Chrome的JavaScript運行時很容易構建快速,可擴展的網絡應用程序的平臺。 Node.js使用事件驅動,非阻塞I/O模型,使得它重量輕,效率高,完美的跨分佈式設備運行數據密集型實時應用。
Node.js是一個開源,跨平臺運行環境的服務器端和網絡應用。Node.js應用程序是用JavaScript編寫的,並可以在OS X,微軟Windows和Linux內的Node.js運行時運行。
Node.js還提供了豐富的各種模塊的JavaScript庫,從而簡化了使用Node.js,一個很大的程度上方便web應用程序的研究與開發。
Node.js = Runtime Environment + JavaScript Library
Node.js特性
以下是一些使得Node.js成爲軟件架構師的首選的重要特徵。
Node.js庫異步和事件驅動 - 所有API異步是非阻塞。 這意味着一個基於Node.js的服務器不會等待API返回數據。 服務器移動到下一個API後調用它,Node.js事件的一個通知機制有助於服務器,以獲得從以API調用的響應。
非常快 - 正在構建在谷歌Chrome的V8 JavaScript引擎,Node.js庫代碼執行是非常快的。
單線程但高度可擴展 - Node.js使用事件循環單線程模型。事件機制有助於服務器在非阻塞的方式作出反應,並使得服務器的高可擴展性,而不是它創建線程限制來處理請求的傳統服務器。 Node.js使用單線程的程序和同樣的程序處理比傳統的服務器要大的多,比如:比Apache HTTP服務器請求服務的數量大得多。
無緩衝 - Node.js的應用從來沒有緩衝任何數據。這些應用程序只需輸出塊中的數據。
許可證 - Node.js是在MIT許可下發布的。
誰在使用Node.js?
以下是包含項目,應用和公司,都使用node.js一個詳盡的清單在github鏈接, 這個列表包括eBay, General Electric, GoDaddy, Microsoft, PayPal, Uber, Wikipins, Yahoo!, Yammer都在不斷使用它。
概念
下圖描述了Node.js的一些重要組成部分,我們將詳細在隨後的章節討論。
在哪裏可以使用Node.js?
以下是Node.js是證明自己完美的技術的領域。
I/O密集型應用程序
數據流應用
數據密集型實時應用(DIRT)
JSON API的應用程序
單頁應用
在哪些地方不要使用Node.js?
不建議使用Node.js在CPU密集型應用。