無痛安裝 NodeJS 和 Node Framework Express

NodeJS 是目前當紅的 Web 2.0 技術,去年 COSCUP 2010 就有 KKBOX 資深工程師 ericpi 來探討這個議題,NodeJS 背後使用了 V8 引擎為基礎,沒看過用純 JS 來當 Server-Side 吧,台灣很紅的 Plurk 也是大量使用 NodeJS,然而每開發一種語言,就會想開始找搭配的 Framework,那就首推 Node Framework Express 來撰寫程式,本篇是要介紹如何在 Ubuntu 10.10 無痛安裝 nodejs + express。

下載 Nodejs 原始碼

直接到官網下載 Stable 的版本吧,目前是 node-v0.4.10.tar.gz,也可以先看看 API Document

# wget http: //nodejs.org /dist /node-v0.4.10.tar.gz

安裝 Ububtu 相關套件

$ sudo apt-get install python libssl-dev g++

下面會使用最原始的編譯方式,所以必須安裝 g++ 套件,否則下 ./configure 的時候,會吐出來沒有安裝過的套件。

安裝 Nodejs 套件

兩種方法:1.用 apt-get install nodejs 2. 用 tar 方式原始編譯

原始編譯過程如下:

$ mkdir ~ /opt / && cd opt
$ tar -zxvf node-v0.4.10.tar.gz
$ cd node-v0.4.10 /
$ . /configure --prefix=~ /opt /node

到這裡,如果 compiler 成功,就會產生出 Makefile,如果中間遇到錯誤訊息,大概都是套件沒有安裝,接著執行

$ make && make install

將執行檔路徑放到 PATH

修改 ~/.bashrc,增加底下

export PATH= "$HOME/opt/bin/:$PATH"
export NODE_PATH= "$HOME/opt/node:$HOME/opt/node/lib/node_modules"
# 重新執行 shell 或者是重新登入即可
source ~ /.bashrc

上面安裝步驟都可以參考 Building and Installing Node.js

安裝 Nodejs 管理套件 npm

npm 就類似 Ruby 的 gem,安裝方式很容易

curl http: //npmjs.org /install.sh | sh

假如您是用 apt-get 安裝 nodejs 的話,請修改 install.sh

# make sure that node exists
node= ` which node 2 >& 1 `

改成

# make sure that node exists
node= ` which nodejs 2 >& 1 `

接下來就是要安裝我們的開發環境 Express 這套 Nodejs Framework

安裝 Express

安裝方式可以參考 Express Guide

$ npm install express -gd

解釋一下 -gd 的參數說明,-g 的用意是 executable install globally,也就是我們要在任何地方都可以執行 express 指令,另外 -d 則是將 node_modules 都安裝到 node lib 的目錄裡面,這樣開 express project 就不用再 npm install -d 了,大家可以透過底下兩個指令來瞭解

$ npm list -g
$ npm list

建立 Express 專案

$ express foo && cd foo

直接執行 node app.js 如下

Express server listening on port 3000 in development mode

看到此訊息就是代表成功了,直接打開瀏覽器 http://localhost:3000 可以看到 Express 歡迎畫面

更多 Express Example 可以參考 github 上面的 Express 專案

Ref:

node.js第二講:安裝node.js與express.js
node.js第一講:簡介

Related View

  • 用 js 或 php 判斷 Android 手機上網 (2)
  • jQuery 偵測瀏覽器版本, 作業系統(OS detection) (0)
  • [筆記] iframe 父頁子頁呼叫函式 parent call function (1)
  • [jQuery] 解決 IE6 PNG 透明背景 (Supersleight jQuery Plugin for Transparent PNGs in IE6) (2)
  • [jQuery] AjaxFileUpload : Multiple File Upload plugin (8)
  • Google Chrome 支援超過 40,000 Extensions! with Greasemonkey (1)
  • Using firebug for firefox 除錯 javascript (1)
  • [Javascript] 在函數裡設定參數預設值 (1)
  • [jQuery] ThickBox 3.1 無限期停止支援維護 (0)
  • [jQuery] 驗證表單實作筆記 API/1.3/Selectors (0)

你可能感兴趣的:(JavaScript,ubuntu,nodejs,express)