引言

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 請求。通過合理使用中間件,我們可以簡化代碼,提高應用程序的可維護性和擴展性