Express 使用connect.urlencoded()解析嵌套数组

Express 使用connect.urlencoded()解析嵌套数组,express,connect,multidimensional-array,Express,Connect,Multidimensional Array,我有一个web应用程序,它通常提交给SpringMVC应用程序。已发布的表单数据如下所示: formBean[0].id="100" formBean[0].name="Bill" formBean[1].id="101" formBean[1].name="Steve" formBean[0][id]="100" formBean[0][name]="Bill" formBean[1][id]="101" formBean[1][name]="Steve" 出于测试/开发目的,我想向运行e

我有一个web应用程序,它通常提交给SpringMVC应用程序。已发布的表单数据如下所示:

formBean[0].id="100"
formBean[0].name="Bill"
formBean[1].id="101"
formBean[1].name="Steve"
formBean[0][id]="100"
formBean[0][name]="Bill"
formBean[1][id]="101"
formBean[1][name]="Steve"
出于测试/开发目的,我想向运行express版本4的节点服务器提交相同的表单。connect bodyParser,配置如下:

app.use(bodyParser.urlencoded({ extended: true }));
无法正确分析表单数据。将请求正文转储到控制台会导致:

{ formBean: [ '0', '1' ] }
当我更改表单字段名称以使提交的数据如下所示时,我得到了预期的结果:

formBean[0].id="100"
formBean[0].name="Bill"
formBean[1].id="101"
formBean[1].name="Steve"
formBean[0][id]="100"
formBean[0][name]="Bill"
formBean[1][id]="101"
formBean[1][name]="Steve"
但是,不幸的是,这不适用于我们的SpringMVC应用程序

是否有方法配置connect.urlencoded以正确解析我提交的表单数据?我应该看看中间件有什么不同吗?

试试看

{扩展:false}

这将强制在节点库中使用本机queryString模块

req.body应该有=>{id:[100101],name:[Bill,Steve]}

var bodyParser = require('body-parser');
var parseUrlencoded = bodyParser.urlencoded({extended: false}); //force the use of native queryString module in Node library
app.post(parseUrlencoded, function (request, response) {
    console.log('request.body ' + JSON.stringify(request.body));
    .....
});