我使用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