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庫非同步和事件驅動 - 所有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一個詳盡的清單在github連結, 這個列表包括eBay, General Electric, GoDaddy, Microsoft, PayPal, Uber, Wikipins, Yahoo!, Yammer都在不斷使用它。
下圖描述了Node.js的一些重要組成部分,我們將詳細在隨後的章節討論。
以下是Node.js是證明自己完美的技術的領域。
I/O密集型應用程式
資料流應用
資料密集型實時應用(DIRT)
JSON API的應用程式
單頁應用
不建議使用Node.js在CPU密集型應用。