0%

Node.js - createServer 起手式

node

Node.js 本身提供許多模組可以使用,可以透過 require 方法將模組載入。

這次要學習用 Node.js 裡面的 Http 模組來建立一個伺服器。

載入 HTTP 模組

首先先載入 http 模組,並且使用 http 模組內的 createServer 方法,

1
2
var http = require("http");
http.createServer();

帶入 createServer 參數

在 createServer 中給一個函式,並給兩個參數:

  • request - 當使用者呼叫資料時所發出的請求。
  • response - 回傳給使用者的資料。
1
2
3
4
var http = require("http");
http.createServer(function (request, response) {
//do something
});

寫入 header 以及要呈現內容

1
2
3
4
5
6
7
8
var http = require("http");
http.createServer(function (request, response) {
response.writeHead(200, {
"Content-type": "text/plain",
});
response.write("<h1>hello node!</h1>");
response.end();
});

說明:

  1. 函式內用 response 中的 writeHead 寫入如果正確呼叫到這支程式的狀態與回傳的內容。
  2. 狀態 200 為成功呼叫到此程式, Content-type 目前使用的是字串 plain 格式,如果要回傳是網頁元素則是把 plain 改為 html。
  3. 在 write 中寫入要回傳的內容。
  4. 最後要讓這個函式結束一定要寫 response.end(),不然不會結束。

使用指定連結阜號 port 並打開瀏覽器檢視

最後在程式的末端加上 listen() 方法去開啟連結埠,也就是專案有時候啟動時後面會跑一個數字。那這邊我就定義為 3030 。

1
2
3
4
5
6
7
8
9
10
var http = require("http");
http
.createServer(function (request, response) {
response.writeHead(200, {
"Content-type": "text/plain",
});
response.write("<h1>hello node!</h1>");
response.end();
})
.listen(3030);

此刻來運行看看,輸入:

1
node app.js

並且在瀏覽器輸入:

1
http://127.0.0.1:3030/

便會看到以下畫面,這樣就成功囉!

text

換成 html 的格式

剛剛呈現的是字串,如果把 Content-type 的 plain 改成 html。

1
2
3
4
5
6
7
8
9
10
var http = require("http");
http
.createServer(function (request, response) {
response.writeHead(200, {
"Content-type": "text/html",
});
response.write("<h1>hello node!</h1>");
response.end();
})
.listen(3030);

在開啟瀏覽器:

h2

也成功印出 h2 的標題囉!