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 }) })
ミドルウェアを使用しない生のリクエストの処理
ミドルウェアを使用せずに生のリクエストを取得するには、別のアプローチを使用できます。
request.rawBody プロパティの使用:
このプロパティは、未加工の解析されていないリクエスト本文へのアクセスを提供します。ただし、bodyParser ミドルウェアの制限オプションを本文の予想される長さよりも大きい値に設定する必要があります。
カスタム ミドルウェアの使用:
受信リクエストをインターセプトし、生の本体を取得するカスタム ミドルウェアを定義できます。
app.use((req, res, next) => { req.rawBody = ''; req.on('data', (chunk) => { req.rawBody += chunk; }); req.on('end', () => { next(); }); });
生の本体を手動で処理することはより複雑であり、次のような問題が発生する可能性があることに注意することが重要です。パフォーマンスのオーバーヘッド。一般的には、シンプルさと効率性の点からミドルウェアの使用が推奨されます。
以上がExpress を使用して Node.js の完全なリクエスト本文にアクセスする方法: ミドルウェアと生のリクエスト処理のガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。