未作为Array node.js接收的对象数组

时间:2016-02-01 22:47:58

标签: javascript arrays node.js request javascript-objects

我正在通过一个包含一系列" wine"的POST。发送上的对象看起来像。但是,当我在服务器端记录请求时,该数组是键和值的集合。我错过了什么:

**** MY TEST REQUESTING CODE ****

request.post("http://localhost:3000/todos", {form: params}, function(err, response){
    console.log(response.body);
})

****因为它正在出现的选择****

var params = {
    name: 'Test Do',
    summary: 'This is the summary',
    wines: ['56ad66897070ffc5387352dc', '56dg66898180ffd6487353ef']
}

****我的服务器端代码---为了健康而短缺***

exports.todoPost = function(req, res){
console.log(req.body);
var todo = new ToDo(req.body);
    todo.save(function(err, todoX){
        if(err){return res.send.err;}
        console.log(req.body.store_config)
        if(todo.wines){

****' console.log(req.body)****

的输出
{ name: 'Test Do',
  summary: 'This is the summary',
  'wines[0]': '56ad66897070ffc5387352dc',
  'wines[1]': '56dg66898180ffd6487353ef' }

我可以不在POST中发送数组吗?我在网上看到的所有内容以及我尝试过的所有内容都无法正常工作。它说我正确地传递了东西。

1 个答案:

答案 0 :(得分:0)

从技术上讲,您确实使用POST发送了一个数组。他们的处理方式不同。您可以做的一件事是将对象作为JSON字符串发送。

request.post("...", { form: JSON.stringify(params) }, function( ...

然后在服务器端,只需使用JSON.parse撤消字符串化。

var params = JSON.parse(req.body);