发送到节点/快递服务器的数组的访问值

让我开始说我是一个新手/黑客。 答案可能很简单…我提前道歉。

我通过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”的值…由于某种原因,我不知道如何访问“文件”值。 当我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].filereq.body.attachment[0][file]req.body.attachment[0]['file'] TypeError: Cannot read property '0' of undefined

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

任何帮助深表感谢!

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

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

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