我正在使用 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 对象)。但是,当我发送一个数组时,我发现数据被解析为 objects(?) 的对象而不是数组。
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]') {
但是一个只包含一个对象的数组打破了这一点。例如:
req.body = [{ "title": "Hello World", "text": "blah blah" }];
typeof req.body;
// object
req.body.toString();
// [object Object]
鉴于此,是否有保证的方法来检查我的数据是否为数组?