发送给节点/快递服务器的数组访问值
问题描述:
让我先说我是一个新手/黑客。答案可能很简单...我提前道歉。发送给节点/快递服务器的数组访问值
我通过jquery $ .ajax(POST)将对象发送到运行express的Node.js服务器。该物体看起来像这样我的服务器上我做的Ajax调用之前:
var data = {
"to" : "[email protected]",
"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”的值没问题......出于某种原因,我无法弄清楚如何访问'文件'值虽然。当我在我的节点服务器上console.log
req.body
我现在看到我的对象看起来不同。
具体来说,我叫console.log(JSON.stringify(req.body))
输出到控制台看起来是这样的:
"to" : "[email protected]",
"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
Thanks @adeneo that works ... now to弄清楚为什么会发生这种情况。 – Koreys