Node.js 在即時的 Web應用上採用了基於 WebSocket 的推送技術。這意味著什麼樣的革命性? Well,在經過了20多年的基於無狀態的請求-返機制的無狀態交互之後,我們終於有了實時的,雙向連接的web應用,客戶端和服務器端都可以發起通信,能夠自由地交換數據。與此形成鮮明對比的是傳統的 web回應模式,客戶端總是主動發起通訊而服務端被動回傳。此外,這些都是基於運行在標準80連接埠上的開放Web元件(HTML、CSS和JS)。
可能有人會說,我們已經使用 Flash 和 Java Applet 的形式很多年了——但實際上,這些方式只是使用網路將資料傳遞到客戶端上的沙箱環境。他們都是隔離運行的,而且經常操作到需要額外的權限之類的非標準連接埠。
憑藉其獨特的優勢,Node.js的現在已經在許多著名公司的產品中起到了關鍵作用。
Node.js 的主要想法是:使用非阻塞的,事件驅動的 I/O 操作來保持在處理跨平台 (across distributed devices) 資料密集型即時應用時的輕巧高效。這聽起來有點繞口。
它的真正意義是,Node.js 不是一個即將主導Web開發的世界的銀彈級的平台。相反,它是一個滿足特別需求的平台。你一定不會希望用 Node.js 去做 CPU密集型操作。事實上,使用它進行繁重的計算等於摒棄 Node 幾乎所有的優點。 Node 真正的亮點在於建立高效能,高擴展性的網路應用——因為它能夠處理龐大的並且高吞吐量的並發連接。
基礎系統安裝
Node 在 Linux,Macintosh,Solaris 這幾個系統上都可以完美的運行,linux 的發行版本當中使用 Ubuntu 相當適合。這也是我們為什麼要嘗試在 ubuntu 15.04 上安裝 Node.js,當然了在 14.04 上也可以使用相同的步驟安裝。
1) 系統資源
Node.js 所需的基本的系統資源取決於你的架構需求。本教學我們會在一台 1GB 記憶體、 1GHz 處理器和 10GB 磁碟空間的伺服器上進行,最小安裝即可,不需要安裝 Web 伺服器或資料庫伺服器。
2) 系統更新
在我們安裝 Node.js 之前,推薦你將系統更新到最新的修補程式和升級包,所以請登入系統中使用超級使用者執行以下命令:
# apt-get update
3) 安裝依賴
Node.js 只需要你的伺服器上有一些基本系統和軟體功能,像是 'make'、'gcc'和'wget' 之類的。如果你還沒有安裝它們,執行以下命令安裝:
# apt-get install python gcc make g++ wget
下載最新版的Node JS v4.0.0
存取連結 Node JS Download Page 下載原始碼.
複製其中的最新的源代碼的鏈接,然後用wget 下載,命令如下:
# wget https://nodejs.org/download/rc/v4.0.0-rc.1/node-v4.0.0-rc.1.tar.gz
下載完成後使用指令tar 解壓縮:
# tar -zxvf node-v4.0.0-rc.1.tar.gz
安裝 Node JS v4.0.0
現在可以開始使用下載好的原始碼編譯 Node.js。在開始編譯之前,你需要在 ubuntu server 上切換到原始碼解壓縮後的目錄,並執行 configure 腳本來設定原始碼。
root@ubuntu-15:~/node-v4.0.0-rc.1# ./configure
現在執行指令 'make install' 編譯安裝 Node.js:
root@ubuntu-15:~/node-v4.0.0-rc.1# make install
make 指令會花費幾分鐘完成編譯,安靜的等待一會兒。
驗證 Node.js 安裝
一旦編譯任務完成,我們就可以開始驗證安裝工作是否 OK。我們執行下列命令來確認 Node.js 的版本。
root@ubuntu-15:~# node -v
v4.0.0-pre
在命令列下不帶參數的運行node 就會進入REPL(Read-Eval-Print-Loop,讀-執行-輸出-循環)模式,它有一個簡化版的emacs 行編輯器,透過它你可以互動式的運行JS和查看運行結果。
編寫測試程式
我們也可以寫一個很簡單的終端程式來測試安裝是否成功,而且運作正常。要做這個,我們將會建立一個「test.js」 文件,包含以下程式碼,操作如下:
root@ubuntu-15:~# vim test.js var util = require("util"); console.log("Hello! This is a Node Test Program"); :wq!
現在為了運行上面的程序,在命令列運行下面的命令。
root@ubuntu-15:~# node test.js
在一個成功安裝了Node JS 的環境下執行上面的程式就會在螢幕上得到上圖所示的輸出,這個程式載入類別「util」 到變數「util」 中,接著用物件「util」 執行終端任務,console.log 這個指令作用類似C 裡的cout
結論
就是這些了。如果你剛開始使用 Node.js 開發應用程序,希望本文能夠透過在 ubuntu 上安裝、運行 Node.js 讓你了解一下Node.js 的大概。最後,我們可以認為我們可以期待 Node JS v4.0.0 能夠取得顯著效能提升。