ホームページ > ウェブフロントエンド > jsチュートリアル > すべての開発者が知っておくべき重要な Express リクエストのプロパティ

すべての開発者が知っておくべき重要な Express リクエストのプロパティ

DDD
リリース: 2024-09-12 22:31:38
オリジナル
1126 人が閲覧しました

ssential Express Request Properties Every Developer Should Know

プロジェクトのバックエンドで作業する場合、リクエストとレスポンスの処理は非常に重要です。これらのリクエストを効率的に管理することは、クライアントとサーバー間の通信をスムーズに行うために不可欠です。ここでは、すべての開発者が知っておくべき、一般的かつ重要なリクエスト プロパティをいくつか示します。

1. 要求IP

Express.js の

req.ip は、リクエストを行っているクライアントの IP アドレスを提供するリクエスト オブジェクトのプロパティです。クライアントの IP アドレスを表す文字列を返します。

プロキシの処理:
デフォルトでは、アプリがプロキシの背後にある場合、req.ip は実際のクライアントの IP ではなくプロキシの IP を返す場合があります。正しいクライアント IP を取得するには、信頼プロキシを設定してプロキシを信頼するように Express を構成できます。

app.set("trust proxy", true);
ログイン後にコピー

現在、req.ip はプロキシの背後にある場合でもクライアントの正しい IP を返します。

例:

app.get('/', (req, res) => {
  console.log(req.ip);  // Logs the client's IP address
  res.send(`Your IP address is ${req.ip}`);
});
ログイン後にコピー

2. Cookie が必要

req.cookies を使用するには、cookie-parser ミドルウェアと呼ばれるパッケージをインストールする必要があります。このプロパティは、クライアントによって Cookie ヘッダーで送信された Cookie を取得するために使用されます。 req.cookies 内の Cookie は署名されていません。これは、改ざんまたは検証されていないことを意味します。これは機密性の低いデータに使用できます

import cookieParser from "cookie-parser";

app.use(cookieParser());

app.get('/example', (req, res) => {
  console.log(req.cookies);  // { cookieName: 'cookieValue' }
});
ログイン後にコピー

3.req.signedCookies

req.signedCookies を使用するには、cookie-parser ミドルウェアと呼ばれるパッケージをインストールする必要があります。これには、変更されていないことを確認するために署名および検証された Cookie が含まれています。署名付き Cookie は秘密キーで暗号化されます。 req.signedCookies には、検証に合格した Cookie のみが保存されます。

署名付き Cookie の設定方法:
署名付き Cookie を設定するには、signed: true オプションを使用できます:

res.cookie('signedCookieName', 'signedValue', { signed: true });
ログイン後にコピー

例:

import cookieParser from "cookie-parser";

app.use(cookieParser('your-secret-key'));

app.get('/example', (req, res) => {
  console.log(req.signedCookies);  // { signedCookieName: 'signedValue' }
});

ログイン後にコピー

4.req.params

Express.js の

req.params は、リクエストの URL からのルート パラメーターを含むオブジェクトです。ルート パラメーターはルート パス内のプレースホルダーとして名前が付けられ、req.params はクライアントによって提供された値をそれらのプレースホルダーの URL に格納します。
パラメーター名の前にコロン (:) を使用して、パラメーターを含むルートを定義できます。

例:

app.get('/users/:userId', (req, res) => {
  console.log(req.params); // { userId: 'valueFromURL' }
  res.send(`User ID is ${req.params.userId}`);
});

ログイン後にコピー

5.リクエストクエリ

Express.js の

req.query は、リクエストの URL からのクエリ文字列パラメータを含むオブジェクトです。クエリ文字列は、? の後に来るキーと値のペアです。 URL に含まれており、追加データをサーバーに渡すために使用されます。 &.

を使用して複数のクエリを渡すことができます。

URL の例:

http://example.com/search?term=flowers&sort=asc
ログイン後にコピー

例:

app.get('/search', (req, res) => {
  console.log(req.query);  // { term: 'flowers', sort: 'asc' }
  res.send(`Search term: ${req.query.term}, Sort order: ${req.query.sort}`);
});

ログイン後にコピー

6. 要求本文

クライアントから送信されたデータのキーと値のペアが含まれています。デフォルトでは、その値は未定義です。本体データは、express.json や urlencoded({ extend: true }) などの組み込みミドルウェア、または body-parser などの外部ミドルウェアを使用して設定できます。

次のコードは理解に役立ちます

import express from "express";

const app = express();

app.use(express.json());
app.use(express.urlencoded({ extended: true }));

app.get("/user", (req, res) => {
    const user  = req.body;
    consolo.log(user);
    res.send(user);
})
ログイン後にコピー

これがお役に立てば幸いです!今後の参照のために「いいね」を付けて保存することを忘れないでください。コーディングを楽しんでください!

以上がすべての開発者が知っておくべき重要な Express リクエストのプロパティの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート