讓我先說我是一個新手/黑客。答案可能很簡單...我提前道歉。發送給節點/快遞服務器的數組訪問值
我通過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