Limit Express アプリケーションの評価方法

Limit Express アプリケーションの評価方法

レート制限は、ネットワーク上のトラフィックを制御するために使用できる戦略です。特定の時間枠内でユーザーが作成できるリクエストの数を制限します。





さまざまなレート制限アルゴリズムが存在し、それぞれに独自のトレードオフがあります。シンプルで一般的な方法の 1 つは、リクエストの IP アドレスを追跡し、リクエスト間の経過時間を確認することです。その IP アドレスが制限で許可されている要求の数を超えている場合、システムは要求を拒否できます。





今日のメイク動画

レート制限に対するこのアプローチは、NodeJS-Express アプリで簡単に構築でき、わずか数ステップで済みます。





ステップ 1: 開発環境のセットアップ

まず、Express アプリケーションを作成して初期化する必要があります。

次のコマンドを実行して、プロジェクト ディレクトリを作成することから始めます。



mkdir express-app 

次に、次を実行してそのディレクトリに入ります。

cd express-app 

次に初期化 npm、ノード パッケージ マネージャー、 を作成します。 パッケージ.json 次のコマンドを実行して、アプリケーションにファイルを追加します。





npm init -y 

-Y フラグはあなたを作成します パッケージ.json すべてのデフォルト設定を含むファイル。

次に、いくつかの依存関係をインストールする必要があります。このチュートリアルに必要な依存関係は次のとおりです。





  • ExpressJS: ExpressJS は NodeJS フレームワークです Web およびモバイル アプリケーションに堅牢な一連の機能を提供します。 NodeJS を使用してバックエンド アプリケーションを構築するプロセスを簡素化します。
  • エクスプレス レート制限 : Express rate limit は、ExpressJS のレート制限ミドルウェアです。パスワードのリセット、ユーザーのログインなど、パブリック API やエンドポイントへの繰り返しのリクエストを制限します。

次を実行して、必要な依存関係をインストールします。

npm install express express-rate-limit

ステップ 2: Express アプリケーションの作成

アプリケーションに対するリクエストをリッスンする基本的な Express サーバーを作成する必要があります。

まず、 index.js プロジェクトのルート ディレクトリにあるファイル。これは、アプリケーションのエントリ ファイルになります。

次に、次のコードを index.js ファイル:

// index.js 
const express = require("express");
const app = express();
const port = process.env.PORT || 3000

app.listen(port, () => {
console.log(`App running on port ${port}`);
});

このコードはインポートします 特急 そして、express() を呼び出して Express アプリケーションを作成し、その戻り値を アプリ 変数。次に、ポートでトラフィックをリッスンします 3000 を呼び出すことによって 聞く 上のメソッド アプリ 物体。

ステップ 3: ルート ハンドラーの作成

次に、レート制限ソリューションを実装できるいくつかのルート ハンドラーを作成します。

まず、次のコマンドを実行して、プロジェクトのルート ディレクトリにルート フォルダーを作成します。

mkdir routes 

ファイルを作成し、 ルート.js で、routes フォルダー内に次のコードを追加します。

オンラインでシャツを購入するのに最適な場所
const express = require("express"); 
const router = express.Router();

router.get("/", (req, res) => {
res.send({ message: "Hello, this is a GET request" });
});

router.post("/add-demo", (req, res) => {
res.status(201).send({ message: "Resource created successfully" });
});

router.put("/update-demo", (req, res) => {
res.status(201).send({ message: "Resource updated sucessfully" });
});

module.exports = router;

このコードはインポートします 特急 、を呼び出します ルーター メソッド 特急 、変数に値を格納し、 ルーター .の ルーター メソッドを使用すると、モジュール式のマウント可能なルート ハンドラーを作成できます。のルート ハンドラを作成できます。 得る へのリクエスト / 」、 役職 へのリクエスト /デモを追加 」、および 置く へのリクエスト /アップデートデモ 」。最後に、エクスポートします ルーター 変数。

次に、 ルーター あなたの変数 index.js ファイル:

// index.js 
const routes = require("./routes/routes");

次に、index.js ファイルでミドルウェアとして使用します。

// index.js 
app.use(routes);