Javascript 如何将AJAX对象数组发布到node.js服务器?

Javascript 如何将AJAX对象数组发布到node.js服务器?,javascript,arrays,ajax,node.js,object,Javascript,Arrays,Ajax,Node.js,Object,有没有一种方法可以让ajax发布一个对象数组并在node.js服务器上解析它?这是我的客户端代码: var context = []; obj1 = { first_name: 'e', last_name: 'e', contact_email: 'e', contact_phone_num: 'e', contact_notes: 'e' } obj2 = { first_name: 'a',

有没有一种方法可以让ajax发布一个对象数组并在node.js服务器上解析它?这是我的客户端代码:

var context = [];

obj1 = {
      first_name: 'e',
      last_name: 'e',
      contact_email: 'e',
      contact_phone_num: 'e',
      contact_notes: 'e' 
  }


  obj2 = {
      first_name: 'a',
      last_name: 'a',
      contact_email: 'a',
      contact_phone_num: 'a',
      contact_notes: 'a' 
  }


  var context = [];

  context.push(obj1);
  context.push(obj2)


  $.ajax({
    type: "POST",
    url: '/api/addcontact',
    data: context,
    success: function(data, status) {
        alert('company added!');

    },
    error: function(data, status, res) {
        console.log('err: ' + res);
    }
});
api.post('/api/addcompany', function(req, res) {
    console.log('add company hit');
    console.log(req.body);  //returns {}
    res.sendStatus(200);
});
我的服务器端代码:

var context = [];

obj1 = {
      first_name: 'e',
      last_name: 'e',
      contact_email: 'e',
      contact_phone_num: 'e',
      contact_notes: 'e' 
  }


  obj2 = {
      first_name: 'a',
      last_name: 'a',
      contact_email: 'a',
      contact_phone_num: 'a',
      contact_notes: 'a' 
  }


  var context = [];

  context.push(obj1);
  context.push(obj2)


  $.ajax({
    type: "POST",
    url: '/api/addcontact',
    data: context,
    success: function(data, status) {
        alert('company added!');

    },
    error: function(data, status, res) {
        console.log('err: ' + res);
    }
});
api.post('/api/addcompany', function(req, res) {
    console.log('add company hit');
    console.log(req.body);  //returns {}
    res.sendStatus(200);
});
现在,当我打印请求正文时,它返回
{}

有人能帮我在服务器端正确访问对象数组吗


提前谢谢

之所以发生这种情况,是因为您发送的不是ajax帖子中的对象,而是数组。尝试在
{}
中包装数组以表示它确实是一个对象,然后在服务器代码中引用该对象属性

var context = []; // array

  context.push(obj1);
  context.push(obj2)


  $.ajax({
    type: "POST",
    url: '/api/addcontact',
    data: {context: context}, // requires an object here
    success: function(data, status) {
        alert('company added!');

    },
    error: function(data, status, res) {
        console.log('err: ' + res);
    }
});

然后,在服务器端脚本中,您可以引用body对象的
context
属性。

首先,您应该删除一个
context
变量。如果您已经在顶部声明了第二个,那么就不需要第二个


第二,似乎您发布到了错误的url,应该是
/api/addcompany
还是
/api/addcontact

您使用的是哪个主体解析中间件?