Express.js のミドルウェアは、受信リクエストと送信応答をインターセプトできる強力なメカニズムです。これは、コアのルーティング ロジックを変更せずにアプリケーションの機能を拡張する柔軟な方法を提供します。このブログ投稿では、ミドルウェアの概念を詳しく掘り下げ、そのさまざまなタイプを検討し、それを効果的に実装する方法を示します。
ミドルウェアについて
ミドルウェア関数は本質的に、リクエスト (req)、応答 (res)、チェーン内の次のミドルウェア (next) にアクセスできる関数です。彼らは次のようなさまざまなタスクを実行できます:
ロギング: 分析とデバッグのために受信リクエストと送信応答を記録します。
認証: ユーザーの資格情報を確認し、保護されたルートへのアクセスを承認します。
エラー処理: アプリケーション内で発生するエラーを捕捉して処理します。
リクエストボディの解析: 受信したリクエストボディ (JSON、フォームデータなど) を解析します。
応答ヘッダーの設定: 送信応答にカスタム ヘッダー (CORS ヘッダーなど) を設定します。
ミドルウェアの種類
アプリケーションレベルのミドルウェア:
Express アプリへのすべての受信リクエストに適用されます。
通常、グローバル構成、ロギング、エラー処理に使用されます。
const express = require('express'); const app = express(); // Application-level middleware app.use((req, res, next) => { console.log('Request URL:', req.url); next(); });
ルーターレベルのミドルウェア:
特定のルートまたはルートのグループに適用されます。
ルート固有の認証、認可、またはデータ検証に役立ちます。
const express = require('express'); const router = express.Router(); // Router-level middleware router.use((req, res, next) => { console.log('Router-level middleware'); next(); }); router.get('/users', (req, res) => { // ... });
エラー処理ミドルウェア:
アプリケーション内で発生するエラーを処理するように設計されています。
err、req、res、next の 4 つの引数が必要です。
app.use((err, req, res, next) => { console.error(err.stack); res.status(500).send('Internal Server Error'); });
結論
ミドルウェアを効果的に利用することで、Express.js アプリケーションのセキュリティ、パフォーマンス、および全体的な機能を強化できます。さまざまな種類のミドルウェアとその適切な使用例を理解すると、堅牢でスケーラブルな Web アプリケーションを作成できるようになります。
以上がミドルウェアを使用した Express.js アプリケーションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。