レート制限は、ネットワーク上のトラフィックを制御するために使用できる戦略です。特定の時間枠内でユーザーが作成できるリクエストの数を制限します。
さまざまなレート制限アルゴリズムが存在し、それぞれに独自のトレードオフがあります。シンプルで一般的な方法の 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);