发送到节点/快速服务器

时间:2016-03-02 20:14:48

标签: javascript ajax node.js express

首先让我说我是一个新手/黑客。答案可能很简单......我提前道歉。

我通过jquery $ .ajax(POST)向运行express的Node.js服务器发送一个对象。在我进行Ajax调用之前,对象在我的服务器上看起来像这样:

var data = {
  "to" : "someone@abc.com",
  "attachment" : [{"file": "somefile.jpg"}, {"file": "someOtherFile.jpg"}]
}

这是对我服务器的调用:

$.ajax({
    type: "POST",
    url: "http://myHostHere.com",
    data: data,
    success: function(data){
      console.log("Success... Returned Data: " + data);
    }
});

在我的节点服务器上,这是接受请求的路由:

app.post('/send/', urlEncodeParser, function(req, res){
        console.log("Req Body: " + JSON.stringify(req.body));
      });

urlEncodeParser中间件引用此代码:

let urlEncodeParser = bodyParser.urlencoded({ extended:false });     

我的接收节点服务器接收到该对象,我可以很容易地获得"到"的值。通过req.body.to没问题...出于某种原因,我无法弄清楚如何访问该文件'尽管如此。当我console.log我的节点服务器上的req.body时,我现在看到我的对象看起来不同了。

具体来说,我致电console.log(JSON.stringify(req.body))

控制台的输出如下所示:

"to" : "some@abc.com",
"attachment[0][file]" : "somefile.jpg",
"attachment[1][file]" : "someOtherFile.jpg"

我无法弄清楚如何在我的代码中访问attachment[0][file]的值。每次收到错误req.body.attachment[0].file

时,我都尝试了req.body.attachment[0][file]req.body.attachment[0]['file']以及TypeError: Cannot read property '0' of undefined

此外,我尝试console.log("attachment: " + req.body.attachment),我得到attachment: undefined

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

您可以使用括号表示法访问该值:

req.body['attachment[0][file]']

更重要的是,你要找出为什么你的请求有效载荷看起来像......不幸的是你没有提供任何信息如何发送请求......