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?

以下是Node.js是證明自己完美的技術的領域。

  • I/O密集型應用程序

  • 數據流應用

  • 數據密集型實時應用(DIRT)

  • JSON API的應用程序

  • 單頁應用

在哪些地方不要使用Node.js?

不建議使用Node.js在CPU密集型應用。