1. 程式人生 > >Node.js 入門教程(文件)

Node.js 入門教程(文件)

Node.js是一個基於Chrome JavaScript執行時建立的平臺, 用於方便地搭建響應速度快、易於擴充套件的網路應用。Node.js使用事件驅動,非阻塞I/O 模型而得以輕量和高效,非常適合在分散式裝置上執行資料密集型的實時應用。

V8引擎本身使用了一些最新的編譯技術。這使得用Javascript這類指令碼語言編寫出來的程式碼執行速度獲得了極大提升,又節省了開發成本。對效能的苛求是Node的一個關鍵因素。 Javascript是一個事件驅動語言,Node利用了這個優點,編寫出可擴充套件性高的伺服器。Node採用了一個稱為“事件迴圈(event loop)”的架構,使得編寫可擴充套件性高的伺服器變得既容易又安全。提高伺服器效能的技巧有多種多樣。Node選擇了一種既能提高效能,又能減低開發複雜度的架構。這是一個非常重要的特性。併發程式設計通常很複雜且佈滿地雷。Node繞過了這些,但仍提供很好的效能。

Node採用一系列“非阻塞”庫來支援事件迴圈的方式。本質上就是為檔案系統、資料庫之類的資源提供介面。向檔案系統傳送一個請求時,無需等待硬碟(定址並檢索檔案),硬碟準備好的時候非阻塞介面會通知Node。該模型以可擴充套件的方式簡化了對慢資源的訪問, 直觀,易懂。尤其是對於熟悉onmouseover、onclick等DOM事件的使用者,更有一種似曾相識的感覺。

雖然讓Javascript運行於伺服器端不是Node的獨特之處,但卻是其一強大功能。不得不承認,瀏覽器環境限制了我們選擇程式語言的自由。任何伺服器與日益複雜的瀏覽器客戶端應用程式間共享程式碼的願望只能通過Javascript來實現。雖然還存在其他一些支援Javascript在伺服器端 執行的平臺,但因為上述特性,Node發展迅猛,成為事實上的平臺。

在Node啟動的很短時間內,社群就已經貢獻了大量的擴充套件庫(模組)。其中很多是連線資料庫或是其他軟體的驅動,但還有很多是憑他們的實力製作出來的非常有用的軟體。

最後,不得不提到的是Node社群。雖然Node專案還非常年輕,但很少看到對一個專案如此狂熱的社群。不管是新手,還是專家,大家都圍繞著專案,使用並貢獻自己的能力,致力於打造一個探索、支援、分享、聽取建議的樂土。

Node.js的優點

nodejs作為一個新興的前端框架,後臺語言,有很多吸引人的地方:

RESTful API

單執行緒

Node.js可以在不新增額外執行緒的情況下,依然可以對任務進行併發處理 —— Node.js是單執行緒的。它通過事件輪詢(event loop)來實現併發操作,對此,我們應該要充分利用這一點 —— 儘可能的避免阻塞操作,取而代之,多使用非阻塞操作。

非阻塞IO

V8虛擬機器

事件驅動

更多精品課程點選:阿里雲大學