Express JS解析来自Ajax Post的对象数组

时间:2019-07-16 15:33:22

标签: node.js express post

我在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]”字符串值。

0 个答案:

没有答案