我使用Express.js作爲我的應用程序的中間件。我的前端應用程序每隔幾秒用不同的參數調用一條快速路由。然後路由將每個參數調用到第三方api。在每個調用內部,數據都被添加到數組中。在for循環之後,我將數組發送回前端。Express JS發送數組始終爲空
我在路由中聲明數組,但返回的結果是空的。當我在路由之外聲明數組時,它正在工作,但當多個請求同時發生時,這不是最佳的。
server.js
app.get('/prices', function(req, res){
//array for holding all feeds
var feedData = [];
//Url params
var target = req.param('target');
//Convert the params to an array
var targetArray = target.split(',');
//Loop through targets and do request
for (var i = 0; i < targetArray.length; i++) {
//API endpoint
var url = xxx;
request(url, function (error, response, body) {
//Parse the XML body to javascript objects or json
parseString(body, function (err, result) {
//Store result in js object
var resultObject = result;
var arrayObject = resultObject.quotes.quote;
feedData.push(arrayObject[0])
});
});
}
console.log(feedData);
res.send(feedData);
//Clear feedData
feedData = [];
});
所以底線是,數組爲空。有什麼建議麼?
'異步'請求 – Weedoze