接著要學習如何使用 Express 框架來進行基本的路由和請求處理,並了解 Express 的核心概念。
Express 是 Node.js 上最受歡迎的 Web 應用框架,它不但簡化了伺服器的建立過程,還提供強大的路由和中介軟體功能。使用 Express,可以快速構建 API、網站或其他網路應用程式。
首先需要安裝 Express 框架:
bash
npm install express
安裝完成後,就可以開始使用 Express 來建立伺服器並處理請求。
與原生的 Node.js http 模組相比,使用 Express 建立伺服器變得更加簡單。
建立基本的伺服器的範例:
js
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Hello, Express!');
});
app.listen(3000, () => {
console.log('Server is running on http://localhost:3000');
});
在這裡使用 app.get() 定義了根路由 (/),當有 GET 請求發送到這個路徑時,伺服器會回應 "Hello, Express!"。
Express 的一個核心特點是路由。路由允許根據不同的 URL 路徑和 HTTP 方法來定義不同的請求處理邏輯。
定義多個路由的範例:
js
app.get('/', (req, res) => {
res.send('Welcome to the homepage!');
});
app.get('/about', (req, res) => {
res.send('This is the about page.');
});
app.post('/submit', (req, res) => {
res.send('Form submitted.');
});
在這裡定義了三個不同的路由,分別處理 /、/about 和 /submit 的請求,並根據 HTTP 方法(GET 或 POST)做出不同的回應。
Express 允許你在路由中使用動態參數,這對於處理諸如用戶資料等動態內容的請求非常有用。
使用路由參數的範例:
js
app.get('/user/:id', (req, res) => {
const userId = req.params.id;
res.send(`User ID: ${userId}`);
});
在這個範例中,/user/:id 是一個帶有動態參數 id 的路由。當訪問 /user/123 時,伺服器會回應 User ID: 123。
查詢參數是 URL 中以 ? 開頭的部分,通常用來傳遞額外的資料。Express 可以很方便地處理查詢參數。
處理查詢參數的範例:
js
app.get('/search', (req, res) => {
const query = req.query.q;
res.send(`Search query: ${query}`);
});
如果訪問 /search?q=nodejs,伺服器會回應 Search query: nodejs。
Express 中介軟體是用來處理請求的函數,這些函數會在請求到達路由之前執行。可以使用中介軟體來做身份驗證、日誌記錄、解析請求體等操作。
使用中介軟體來解析 JSON 的範例:
js
app.use(express.json());
app.post('/data', (req, res) => {
const data = req.body;
res.send(`Received data: ${JSON.stringify(data)}`);
});
在這裡使用 express.json() 來解析 JSON 格式的請求體,並將解析出的資料回應給客戶端。
當用戶訪問的路由不存在時,需要返回 404 錯誤。這可以通過定義一個全局的路由來實現。
處理 404 的範例:
js
app.use((req, res) => {
res.status(404).send('Page not found');
});
這個中介軟體函數會在所有路由之後執行,當找不到對應的路由時,它會返回 404 錯誤。
今天學習了 Express 框架的基礎知識,包含如何建立伺服器、處理路由、使用路由參數、處理查詢參數,並透過中介軟體來處理請求。Express 簡化了 Node.js 的伺服器開發,可以快速開發出高效的 Web 應用程式。接下來會進一步探索 Express 的進階功能。