发送到节点/快递服务器的数组的访问值
让我开始说我是一个新手/黑客。 答案可能很简单…我提前道歉。
我通过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].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
。
任何帮助深表感谢!
您可以使用括号表示法访问该值:
req.body['attachment[0][file]']
更重要的是,你发现为什么你的请求有效载荷看起来像…不幸的是,你没有提供任何信息如何发送请求…