【发布时间】:2016-03-02 20:14:47
【问题描述】:
首先让我说我是一个完全的新手/黑客。答案可能很简单……我提前道歉。
我通过 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 轻松获取“to”的值。to 没问题...由于某种原因,我无法弄清楚如何访问“文件”值.当我在我的 Node 服务器上 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] 的值。每次收到错误TypeError: Cannot read property '0' of undefined 时,我都尝试过req.body.attachment[0].file 和req.body.attachment[0][file] 和req.body.attachment[0]['file']
我也尝试只使用console.log("attachment: " + req.body.attachment) 并得到attachment: undefined。
非常感谢任何帮助!
【问题讨论】:
-
貌似中间件没有解析,所以其实是
req.body["attachment[1][file]"]访问 -
感谢@adeneo 的工作......现在弄清楚为什么会发生这种情况。
标签: javascript ajax node.js express