Skip to content

建立 2026-09-12 更新 2026-09-12

HTTP 伺服器

HTTP 是瀏覽器與伺服器說話的規則:你打開一個網址(請求),對方回一段內容(回應)。Node.js 內建 node:http,不必先裝 Express 也能寫出最小伺服器。

最小範例

server.js

import http from "node:http";

const server = http.createServer((request, response) => {
  response.writeHead(200, { "Content-Type": "text/plain; charset=utf-8" });
  response.end("來自 Node.js 的回應");
});

server.listen(3000, () => {
  console.log("http://127.0.0.1:3000");
});
node server.js

瀏覽器開啟 http://127.0.0.1:3000。終端機停在這支程式上是正常的,按 Ctrl+C 結束。

這支程式在做什麼

  1. createServer:每次有人來訪就執行裡面的函式。
  2. request:對方要什麼,例如網址 request.url、方法 GET / POST。
  3. response:你回什麼。200 表示成功;Content-Type 告訴瀏覽器這是純文字,並用 UTF-8 才不會中文亂碼。
  4. listen(3000):在本機 3000 連接埠等候。網址寫成 http://127.0.0.1:3000

之後學 Express 或 Fastify,只是把路由與錯誤處理寫得更省事,這四步不會變。

依路徑回應

import http from "node:http";

const server = http.createServer((request, response) => {
  response.writeHead(200, { "Content-Type": "text/plain; charset=utf-8" });

  if (request.url === "/time") {
    response.end(new Date().toISOString());
    return;
  }

  response.end("試試看 /time");
});

server.listen(3000);

request.url 是路徑部分(例如 /time),不是完整的 http://...。兩個 response.end 都要有,而且用 return 避免同一個請求被回兩次。

總結

內建 http 就能聽連接埠、看網址、回文字。先把最小伺服器跑起來,框架才學得進去。