【问题标题】:Parsing nested array with connect.urlencoded()使用 connect.urlencoded() 解析嵌套数组
【发布时间】:2015-01-03 23:42:30
【问题描述】:

我有一个通常提交给 Spring MVC 应用程序的 Web 应用程序。发布的表单数据如下所示:

formBean[0].id="100"
formBean[0].name="Bill"
formBean[1].id="101"
formBean[1].name="Steve"

出于测试/开发目的,我想将相同的表单提交到运行 express(版本 4)的节点服务器。连接bodyParser,配置如下:

app.use(bodyParser.urlencoded({ extended: true }));

没有正确解析表单数据。将 req.body 转储到控制台会导致:

{ formBean: [ '0', '1' ] }

当我更改表单字段名称以使提交的数据如下所示时,我得到了预期的结果:

formBean[0][id]="100"
formBean[0][name]="Bill"
formBean[1][id]="101"
formBean[1][name]="Steve"

但是,不幸的是,这不适用于我们的 Spring MVC 应用程序。

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

【问题讨论】:

    标签: express connect multidimensional-array


    【解决方案1】:

    试试

    { 扩展:假 }

    这会强制在 Node 库中使用原生 queryString 模块

    req.body 应该有 => {"id":["100","101"],"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));
        .....
    });
    

    【讨论】:

      猜你喜欢
      • 2018-08-24
      • 2015-06-15
      • 1970-01-01
      • 2019-01-02
      • 1970-01-01
      • 1970-01-01
      • 2019-01-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多