Express を使用して Node.js の完全なリクエスト本文にアクセスする方法: ミドルウェアと生のリクエスト処理のガイド

DDD
リリース: 2024-10-29 05:41:30
オリジナル
548 人が閲覧しました

How to Access the Full Request Body in Node.js with Express: A Guide to Middleware and Raw Request Handling

Express を使用して Node.js の完全なリクエスト本文にアクセスする

Node.js で Express を利用して POST リクエストを処理し、その本文にアクセスする課題が生じる可能性があります。提供されたコードはリクエスト本文全体の取得に失敗し、例外が発生します。この記事では、この問題の解決策を検討し、express.bodyParser() を使用せずに生のリクエストを取得する可能性について説明します。

Express ミドルウェアの使用

Express v4 以降。 16 では、組み込みの JSON ミドルウェアを実装して、リクエスト本文を JSON として効果的に解析できます。

app.use(express.json())
ログイン後にコピー

このミドルウェアは、本文の内容を req.body プロパティを通じてアクセスできる JavaScript オブジェクトに自動的に解析します。例:

app.post('/test', (req, res) => {
  res.json({ requestBody: req.body })
})
ログイン後にコピー

ミドルウェアを使用しない生のリクエストの処理

ミドルウェアを使用せずに生のリクエストを取得するには、別のアプローチを使用できます。

  1. request.rawBody プロパティの使用:

    このプロパティは、未加工の解析されていないリクエスト本文へのアクセスを提供します。ただし、bodyParser ミドルウェアの制限オプションを本文の予想される長さよりも大きい値に設定する必要があります。

  2. カスタム ミドルウェアの使用:

    受信リクエストをインターセプトし、生の本体を取得するカスタム ミドルウェアを定義できます。

    app.use((req, res, next) => {
      req.rawBody = '';
      req.on('data', (chunk) => { req.rawBody += chunk; });
      req.on('end', () => { next(); });
    });
    ログイン後にコピー

生の本体を手動で処理することはより複雑であり、次のような問題が発生する可能性があることに注意することが重要です。パフォーマンスのオーバーヘッド。一般的には、シンプルさと効率性の点からミドルウェアの使用が推奨されます。

以上がExpress を使用して Node.js の完全なリクエスト本文にアクセスする方法: ミドルウェアと生のリクエスト処理のガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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