我在Web服务器上使用Express,在处理POST请求时很难解析传入的req.body数据,包括对象数组。
简化的服务器代码:
var express = require('express');
var app = express();
var router = express.Router();
var bodyParser = require('body-parser');
var parseUrlencoded = bodyParser.urlencoded({ extended: false });
router.post('/', parseUrlencoded, function(req, res) {
console.log(req.body);
});
客户代码:
$.ajax({
url: '/',
data: {
idSomething: "idValue",
arrayOfObjects: arrayOfObjectData
},
type: 'POST',
dataType: 'json'
})
从客户端发送的数据如下:
{
idSomething: "idValue",
arrayOfObjects: [
{ name: "SubObjectName1", qty: "1" },
{ name: "SubObjectName2", qty: "2" }
]
}
但是当我尝试从服务器访问req.body时,数据结构如下:
{
idSomething: "idValue",
'arrayOfObjects[0][name]': "SubObjectName1",
'arrayOfObjects[0][qty]': "1",
'arrayOfObjects[1][name]': "SubObjectName2",
'arrayOfObjects[1][qty]': "2",
}
如何在服务器中保持数据结构相同?
我尝试将主体解析器的url编码选项更改为extended:true,但是arrayOfObjects的值变成了“ [object object]”字符串值。