Node.js および Express POST 操作でのリクエスト本文へのアクセス
Node.js および Express を使用する場合、POST でリクエスト本文にアクセスする操作はユーザー入力を処理するために重要な場合があります。ここでは、課題を解決し、代替アプローチを検討するための包括的なガイドを示します。
ボディ解析用ミドルウェア
4.16 より前の Express バージョンでは、リクエストボディを解析するために body-parser などのミドルウェアが必要でした。ただし、提供された回答によると、4.16 以降の Express バージョンには、外部モジュールの必要性を排除する組み込みの JSON ミドルウェアが含まれています。 app.use(express.json()) を使用するだけで、JSON 形式のリクエストボディを解析できます。このミドルウェアは自動的に本文を解析し、解析されたオブジェクトを req.body に保存します。
カスタマイズされた生のリクエスト本文へのアクセス
ミドルウェアを使用する場合は、req.rawBody を選択できます。ただし、このメソッドは、application/octet-stream など、サポートされているコンテンツ タイプを持つリクエストでのみ使用できます。未処理のリクエストボディに直接アクセスすると、潜在的なセキュリティ リスクにさらされる可能性があるため、注意して行う必要があることに注意することが重要です。
一般的な問題のトラブルシューティング
Node.js の問題への対処リクエスト本文全体を応答に書き込もうとすると例外がスローされるため、リクエスト本文には文字列以外の文字が含まれる可能性があることを理解することが重要です。したがって、このエラーを防ぐには、応答に書き込む前に、toString() や toBuffer() などのメソッドを使用して本文の内容を文字列またはバッファに変換する必要があります。
Example
組み込みの JSON ミドルウェアと req.body を使用して、解析された JSON オブジェクトとしてリクエスト本文にアクセスする方法を説明するために、Express のサンプルを次に示します。アプリケーション:
const express = require('express');
const app = express();
app.use(express.json());
app.post('/test', (req, res) => {
console.log(req.body); // This will contain the parsed JSON object
res.json({requestBody: req.body}); // Response as JSON
});
app.listen(3000);
これらのガイドラインに従い、Node.js および Express でのリクエスト本文処理の基本を理解することで、開発者はユーザー入力を効果的に管理し、堅牢な POST 操作機能を作成できます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3