私は Express 3.x API サーバーで作業しており (4.x にアップグレードしない理由は聞かないでください。私はそれを制御できません)、バッチ リクエストのサポートを実装しようとしています。特定のエンドポイント。エンドポイントは現在、通常のリクエスト (JSON オブジェクトを受け取る) をサポートしていますが、JSON オブジェクトの配列も取りたいと思っています。
POST /api/posts
Body:
[
{ "title": "Hello World", "text": "blah blah" },
{ "title": "Hello World 2", "text": "blah blah blah" }
]
を使用して単一のリクエストのリクエストの本文にアクセスしようとすると、req.body
問題なくデータを取得できます (通常の JSON オブジェクトです)。ただし、配列を送信すると、データが配列ではなくオブジェクトのオブジェクト (?) として解析されることがわかりました。
req.body = { "title": "Hello World", "text": "blah blah" };
typeof req.body;
// object
req.body.toString();
// [object Object]
req.body = [
{ "title": "Hello World", "text": "blah blah" },
{ "title": "Hello World 2", "text": "blah blah blah" }
];
typeof req.body;
// object
req.body.toString();
// [object Object],[object Object]
次のような簡単なチェックを使用してみました。
if (req.body.toString() !== '[object Object]') {
しかし、オブジェクトを 1 つだけ含む配列はこれを破ります。例えば:
req.body = [{ "title": "Hello World", "text": "blah blah" }];
typeof req.body;
// object
req.body.toString();
// [object Object]
これを考えると、データが配列かどうかを確認する保証された方法はありますか?