node.js教學-建立一個HTTP伺服器

7 / 1, 2013 JS , node.js , 網路

此篇文章是node.js教學的第一篇。

不要以為node.js像其他語言(例如PHP,Python+WSGI,Ruby+Passenger等等)都要黏住一個HTTP伺服器才可以用啊!因為node.js自己就是一個伺服器。

所以,我們就要用node.js寫一個HTTP伺服器出來。不用怕,用node.js寫HTTP伺服器是很容易的,所有node.js開發者都需要知道啊。首先,我們要把node.js的HTTP模組首先載入。

var http = require('http');

注意在node.js模組都是用 require(‘模組名稱’) 來載入的,合乎CommonJS的標準。

好了,載入了HTTP模組後,就可以建立一個HTTP伺服器了。

var server = http.createServer(handleRequest);

很簡單吧!只需要一行的代碼就可以建立一個HTTP伺服器了。可是,我們還需要一個回應HTTP請求的函數這HTTP伺服器才能運作啊!所以為什麼 handleRequest 這個變數才會出現。

var handleRequest = function(request, response){
    response.end("你好!");
}

這幾句代碼會在任何到此伺服器的HTTP請求發出回應『你好!』這句訊息。這個函數很重要,因為所有HTTP請求都是在這裡處理的。

最後,您必須指定伺服器要在甚麼位置和連接埠上監聽HTTP請求。

server.listen(8080,'127.0.0.1',function(){
    console.log('HTTP伺服器在 http://127.0.0.1:8080/ 上運行');
});

這幾句代碼命令HTTP伺服器在 http://127.0.0.1:8080/ 上運行。現在把這些代碼儲存成server.js,然後啟動終端機,輸入以下指令:

node server.js

然後你應看見終端機上出現『HTTP伺服器在 http://127.0.0.1:8080/ 上運行』這字句。這時開啟瀏覽器,輸入 http://127.0.0.1:8080/ ,然後你會見到『你好!』這字句。教學就到此完成。

提示:函數 handleRequest 會有兩個參數, request responserequest 代表了現在的HTTP請求,而response 代表了現在的HTTP回應。

你可能覺得這樣較為麻煩,在下一篇文章我們會介紹一個較為簡單的辦法去寫一個複雜的HTTP伺服器。繼續留意接著的教學文啊!

  • ec

    請問ip是隨便打都可嗎?
    還是要用本電腦的ip?
    感恩~

  • 看文章練習者

    var handleRequest 要先寫才跑得出來唷~
    var server = http.createServer(handleRequest)