プロジェクトのバックエンドで作業する場合、リクエストとレスポンスの処理は非常に重要です。これらのリクエストを効率的に管理することは、クライアントとサーバー間の通信をスムーズに行うために不可欠です。ここでは、すべての開発者が知っておくべき、一般的かつ重要なリクエスト プロパティをいくつか示します。
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}`); });
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' } });
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' } });
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}`); });
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}`); });
クライアントから送信されたデータのキーと値のペアが含まれています。デフォルトでは、その値は未定義です。本体データは、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 サイトの他の関連記事を参照してください。