Category Archives: Node.js

[Node.js]Socket.io

這是Node.js最常用到的套件,Socket.io的優點就是可以達到Server push的效果,且其中連線是使用handshake,如果要做一些與使用即時互動的功能,使用socket.io是最適合不過的(socket.io source)

安裝

使用範例 Server side

Client side

Server Broadcast(發送給其他在線上的socket)

Authorization socket.io也可以從 handshake Object 取得一些連線資料 (參考文件)

handshake Object 格式

利用configure統一做一些處理

Continue Reading

[Node.js]package.json

Node.js專案之中,最麻煩的就是module問題,釋出程式時client端常因為某些module沒安裝導致程式無法正常執行

為了克服這個問題,可以在Node.js專案根目錄下新增一個package.json檔案

例如:

name為專案名稱 version為專案版本 dependencies為module名稱和版本(可以設定單一版本或某個版本以上的module)

當client取得程式碼之後,在專案根目錄利用npm安裝即可

Continue Reading

[Node.js]連結Mysql

Node.js在開發時,連結資料庫是一定會用到的

這裡先紀錄Node.js與Mysql連接的方法

1.安裝Node.js裡的mysql套件

2.mysql_connect.js 跟一般開發網站相同,把資料庫連結的這一段獨立出來,避免重複的程式碼太多

3.存取資料庫

4.過濾字串 但如果變數都沒有過濾直接丟進mysql做query很危險 這邊按照了PHP的PDO過濾SQL字串的用法實作

Continue Reading

[Node.js]Express

Node.js中如果用一般的方式寫http server,就得require很多module,非常煩雜 Express就可以解決這部份的問題,Express能解決許多node.js http server 所需要的基本服務,且也很容易操作

首先要使用Express,要先安裝Express 安裝

Configuration 在一開始建立express物件時,可以先透過configure設定一些必要的參數及功能

基本操作方法

轉址

讓使用者在網址列輸入變數的值

middleware Express中,有一個middleware的概念,其中裡面是用next方法參數傳遞,讓開發者可以明確的控制程式邏輯

上段程式執行http://localhost:1234的結果,執行結果為: first middle ware second middle ware third middle ware execute middle ware end middleware function

使用.use的middleware不管client連到任何路徑皆會執行

路由應用 在實際開發上可能會遇到需要使用參數等方式,混和變數一起使用 可以透過.all這個方法先用特定邏輯過濾,可以大量的簡化程式

Express取得post與get方式

get的方式其實上面已經有提到http.get()其實就是取得get參數的函式 再配合url module可以將參數個別取出來

post的話需透過http.post(),不過注意的是使用.post後,直接用瀏覽器存取該頁會顯示Cannot POST,必須一定要透過post才時

Express3.0提供了一個express.bodyParser()方法,可以將post參數都存到req.body裡

設定

範例

掛載資源並指定路徑 express可以引入外部資源,並指定特定的路徑 例如以下範例,這樣就可以透過http://127.0.0.1:1234/aaa/test.css連到原本public/test.css

session應用

Continue Reading

[Node.js]利用Node.js建立http server

Node.js中有個http的module可以建立http server,使用上也非常的容易 例如:

執行上述這段程式後,利用瀏覽器就可以連到Node.js產生出來的http server

既然說是http server,讀檔也是必要的,需配合fs module來讀檔

另外補充一下

res.write()跟res.end()不同的地方在於,res.write()可以不限次數使用,將資料回傳給client;而res.end()也可以將資料回傳給client,但傳完後就結束與client的connect了

Continue Reading

[Node.js]jsdom

在Node.js中,如果要使用HTML的DOM tree,必需再安裝jsdom這個套件

安裝jsdom

使用jsdom方式也非常簡單

Continue Reading

[Node.js]Node.js & NPM 安裝(建立開發環境)

Node.js是最近很熱門的技術,從他的名字就知道他其實就是JavaScript 唯一不同的地方就是,Node.js是在後端執行的,就像是PHP這樣

既然要使用Node.js,就得先建立好開發環境(也可以透過/usr/ports/www/node直接安裝)

以下分別針對兩個開發環境來安裝

FreeBSD:

1.先到 Node.js官網 下載source

2.解壓縮node-v0.6.18.tar.gz,並移動node的目錄

3.利用node/configure檢查主機環境

另外補充,如果要指定安裝的路徑,configure可以指定

不過裝完後系統可能會沒有node指令,必需自己export

4.編譯並安裝

5.測試,建立一個檔案(example.js)並輸入以下程式碼

執行該程式

打開網頁在網址列輸入http://120.119.1.1:1234/ 如果可以看到Hello Node.js就是代表成功了

Ubuntu:

1.先安裝一些需要用到的套件

2.剩的都跟FreeBSD步驟相同,另外Linux預設就是GNU make的關係,編譯和安裝時直接使用make指令就可以,不用再使用gmake

NPM

接下來介紹NPM(Node Package Manager),這是node.js管理套件的工具 例如說你想用jQuery開發,就必需用NPM安裝jQuery

NPM在Node.js最新版已加入Source裡,安裝完Node.js時就會一併安裝NPM

NPM可以透過自己更新自己

其他基本操作:

安裝其他套件時,也可以自行參考需不需要裝在global (是否要使用全域安裝,可以依照套件是否提供新指令來判斷。coffee-script 提供 coffee 指令,如果像jquery套件沒有新指令的話,裝在專案的目錄即可)

另外補充,安裝全域的套件時,要注意權限問題,最好使用root模式安裝

Continue Reading