引言
Node.js 是一個基於 Chrome V8 引擎的 JavaScript 運行時,常用於構建服務器端應用。Express 是一個基於 Node.js 的 web 應用框架,它簡化了許多常見的任務,如路由和中間件管理。本文將介紹 Node.js 中的中間件機制以及如何在 Express 中使用中間件。
Node.js 中間件機制
在 Node.js 中,中間件是一個處理 HTTP 請求的函數。它可以執行以下任務:
- 執行任何代碼。
- 修改請求和響應對象。
- 結束請求-響應循環。
- 調用堆棧中的下一個中間件。
通常,中間件遵循以下模式:
const express = require('express');
const app = express();
const myMiddleware = (req, res, next) => {
console.log('Request URL:', req.originalUrl);
next(); // 調用堆棧中的下一個中間件
};
app.use(myMiddleware);
Express 中間件
Express 內置了一些常用的中間件,如 express.json() 用於解析 JSON 請求體,express.urlencoded() 用於解析 URL 編碼的請求體。此外,Express 也允許開發者編寫自定義中間件。
// 使用內置中間件解析 JSON 請求體
app.use(express.json());
// 自定義中間件記錄請求方法
app.use((req, res, next) => {
console.log('Request Method:', req.method);
next();
});
錯誤處理中間件
錯誤處理中間件用於捕獲應用程序中的錯誤併發送適當的錯誤響應。它通常放在所有其他中間件之後。
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send('Something broke!');
});
結論
中間件機制是 Node.js 和 Express 的核心概念之一,它允許開發者以模塊化的方式處理 HTTP 請求。通過合理使用中間件,我們可以簡化代碼,提高應用程序的可維護性和擴展性