2012年8月15日 星期三

Node.js 學習資源

對於 Node.js 不熟的朋友,可以參考 Wikipedia 的解釋,對筆者來說,就是可以用 Javascript 的語法來寫,Server Side 的程式,而且有很好的效能,這個是令筆者意外的。舉凡台灣比較常見的 Server Side 語言,PHP, JSP/Servlet,Ruby On Rail,中 Node.js 算是非常少見的,而且目前也只到 0.8.7 還沒上 1.0。也曾經有朋友提過,還沒上 1.0 的比較不穩定基本的東西要改變的機會很大,所以如果近期要上寫的話還是用比較穩定的方法,當然筆者也同意,卻實筆者在開發的時候,也遇到 Google 到的程式碼是 deprecated,不過總是有方法解決就是。話雖如此,還是無法澆息停止筆者想學習新東西的熱情。如果有一樣熱情朋友們,讓我們一起看下去。
首先來看一下 Node.js 寫一個 HTTP Server 的 Hello World 的程式碼。取自 Node.js Wikipeida.
var http = require('http');
 
http.createServer(function (request, response) {
    response.writeHead(200, {'Content-Type': 'text/plain'});
    response.end('Hello World\n');
}).listen(8000);
就這樣,假設存在 hello.js 安裝好 node 的朋友,直接在 Terminal 執行,不知道 Terminal 的朋友,如果是用 Mac 就用 spotlight 來找,鍵入 ctrl+space,輸入 terminal 會出現終端機或是 Terminal 如下圖。
執行 Terminal 之後可以在提示列,輸入 cd (change directory )並指定到 hello.js 所在的路徑,此例筆者是放在 /Users/chronoer/Documents/node 所以就輸入,cd /Users/chronoer/Documents/node 切換到這個目錄,如下
然後執行 hello.js 如下輸入在終端機。
node hello.js
如下。

成功執行,就可以用 Browser 去連結 http://127.0.0.1:8000 如下


如此一來就會看到
Hello World 
在 Browser 上面。沒有驚訝嗎?讓我們再看下去。

安裝 Node.js

請到官方網頁下載 http://nodejs.org/download/
看到下方的圖你會得知目前的版本是 0.8.7
看得出來支援三大平台,Windows, Mac OS X,Linux
安裝成功後,我們在 Terminal 輸入 node -v 會看到
v0.8.6
這樣 Node.js 的環境就建立好了,接下來就是安裝必要的 Package

NPM

NPM 是 Node Package Manager 的縮寫請看這邊
從 Node.js 0.6 之後就自動被放到 Node.js 的 package 裡面了。所以我們安裝好 Node.js 的 package 就會有 npm ,我們可以在 Terminal 上輸入
npm install http
這個 http 是 package name 也就是一開始 Node.js 程式碼裡提到的 require('http') 中的 http,安裝的時候你會看到這樣的訊息
去下載 http 然後看到 GET 和 200 字樣就是正常下載,日前筆者遇到 registry.npmjs.org 當機,就無法安裝任何的 package。可以注意看一下是 200 或是 404 or 505 這些訊息就知道是 Server 的問題還是自身的問題。
也許讀者會問 http 被下載安裝到那邊?詳細的文件,請把目光移到官網這邊,簡單地說,有兩個地方,Global 和 Local 資料夾,網頁有如下的解釋
  1. globally —- This drops modules in {prefix}/lib/node_modules, and puts executable files in {prefix}/bin, where {prefix} is usually something like /usr/local. It also installs man pages in {prefix}/share/man, if they’re supplied.
  2. locally —- This installs your package in the current working directory. Node modules go in ./node_modules, executables go in ./node_modules/.bin/, and man pages aren’t installed at all.
我個人的解說如下
  1. globally - 會把 module 放在 /usr/local/lib/node_modules 然後執行檔放在 /usr/local/bin
  2. locally - 放 module 放在當前目錄也就是執行 npm install 的目錄下的 node_modules/ 然後執行檔會放在 node_modules/.bin/
那怎麼在執行的時候指定放到 global 還是 local ? 就加上一個 -g,如下的例子
npm install -g http - 把 http 放到 global
npm install http - 把 http 放到 local

執行

安裝好 node 也把需要的 module 利用 npm 下載下來之後,就可以執行了,把文章一開頭的程式碼寫在 hello.js 這個檔案,然後在 Terminal 執行輸入以下指令
node hello.js
就會有一個 http server 綁定 port 8000,所以用 Browser 去連結這個 Server,用
http://127.0.0.1:8000
就會在 Browser 看到
Hello World

線上學習

Node Beginner

 

線上部署平台

可以參考這個網頁整理的
筆者看了一下,看起比較簡單入手的
Nodejitsu - 目前筆者是用這個測試,動作很簡單
Nodester - 這個看起來又更簡單,但是筆者還沒收到 coupon 還沒測試

延申閱讀 - 書

JavaScript 基本觀念 - Head First Javascript



 JavaScript 設計模式 - Javascript Patterns

Node.js 基本 - Node Up and Running

Node.js 範例 - Node Cookbook

 

 

沒有留言:

張貼留言