ホームページ  >  記事  >  ウェブフロントエンド  >  Nodejsミドルウェアの実装

Nodejsミドルウェアの実装

WBOY
WBOYオリジナル
2023-05-28 15:07:39605ブラウズ

Node.js は、非常に強力なサーバー側オペレーティング環境であり、人気のあるバックエンド開発フレームワークです。 Node.js には多くの強力な機能があり、その 1 つはミドルウェアです。ミドルウェアは Node.js の重要な概念であり、Node.js アプリケーションにリクエストを処理するためのより柔軟でカスタマイズ可能な方法を提供します。次の記事では、Node.js でミドルウェアを使用する方法について説明します。

ミドルウェアとは何ですか?

Node.js では、ミドルウェアはアプリケーションのリクエスト オブジェクト (req)、応答オブジェクト (res) にアクセスし、次のミドルウェア関数に制御を直接渡すことができる関数です。ミドルウェア機能は通常、リクエストのログ記録、認証、データ検証などの特定の操作を実行するように設計されています。

ミドルウェアは Node.js の非常に強力な機能の 1 つであり、次の機能を提供できます:

  1. HTTP リクエストとレスポンスの処理を支援する
  2. リクエストやリクエストを変更する応答オブジェクト
  3. アプリケーションで特定の操作を実行します
  4. ミドルウェア スタックをスキップします
  5. 他のサードパーティ製ミドルウェアをインストールします

ミドルウェアの仕組み

ミドルウェアは Node.js の重要な機能であり、その動作モードとライフサイクルは非常に理解しやすいです。簡単に言えば、HTTP リクエストがサーバーに入ると、アプリケーション内のすべてのミドルウェア機能が順番に実行されます。各ミドルウェア関数は、要求オブジェクトと応答オブジェクトを処理でき、オプションで要求を次のミドルウェアに渡すことができます。

ミドルウェアの基本的な使用形式を見てみましょう:

app.use(function (req, res, next) {
    console.log('This is a middleware function');
    next();
});

上の例では、ミドルウェア関数を定義しました。この関数がアプリケーションによって呼び出されると、ログ メッセージが出力されてから next() メソッドが呼び出されます。 next() メソッドは、次のミドルウェア関数 (存在する場合) に制御を移します。

next() メソッドが呼び出されない場合、リクエストは一時停止され、続行されません。この場合、アプリケーションは応答を送信しません。これは通常、エラー状態であるため、ミドルウェア関数を作成するときは、必ず next() メソッドを呼び出してください。

Node.js ミドルウェアの分類

Node.js では、ミドルウェアは次の 2 種類に分類できます。

  1. アプリケーションレベルのミドルウェア
  2. ルート レベルのミドルウェア

アプリケーション レベルのミドルウェア

アプリケーション レベルのミドルウェアとは、現在のアプリケーションのすべてのリクエストを処理できるミドルウェアを指します。このミドルウェアは、app.use() メソッドを通じて追加されます。たとえば、すべてのリクエストをログに記録したり、認証を実装したりできます。

let express = require('express');
let app = express();

app.use(function (req, res, next) {
   console.log('Time:', Date.now());
   next();
});

ルーティング レベルのミドルウェア

ルーティング レベルのミドルウェアは、名前が示すように、現在のルーティング リクエストのみを処理できるミドルウェアです。このミドルウェアは、Router オブジェクトの use() メソッドを通じて追加されます。例: リクエスト検証の実装、キャッシュの実装など。

let express = require('express');
let router = express.Router();

router.use(function (req, res, next) {
   console.log('Request URL:', req.originalUrl);
   next();
});

サードパーティのミドルウェアの使用

Node.js では、通常、サードパーティのミドルウェアを使用することが非常に一般的です。このアプローチにより、独自のコードを作成する時間と労力を費やすことなく、既存の機能をアプリケーションに追加できます。以下は、非常に有名なサードパーティ製ミドルウェア、body-parser ミドルウェアの使用方法です。

let express = require('express');
let bodyParser = require('body-parser');

let app = express();

// 处理 application/x-www-form-urlencoded 类型的请求体
app.use(bodyParser.urlencoded({ extended: false }));

// 处理 application/json 类型的请求体
app.use(bodyParser.json());

概要

この記事では、Node.js ミドルウェアの定義、機能、分類について学びました。ミドルウェアは Node.js の非常に重要な概念であり、ミドルウェアを介してアプリケーションに機能と柔軟性を追加できます。アプリケーション レベルのミドルウェアであっても、ルーティング レベルのミドルウェアであっても、ミドルウェアの機能を正しく使用することで、アプリケーション ロジックをより効率的に実装できます。

以上がNodejsミドルウェアの実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。