0
私はnodejsアプリケーションを構築しています。ループ内のnodejs要求
Location.find({} ,function (err, result){
var locations = [];
result.forEach(function(listItem, i){
url = "https://maps.googleapis.com/maps/api/geocode/json?address=" + encodeURIComponent(listItem.address) + "&key=AIzaSyDQsX4Kci3xHp1xy6ZjT-5lsLNI-J-CH-8";
request(url, function(error, response, body) {
all = JSON.parse(body);
locations.push({des: result[i].placeinfo,lat: all.results[0].geometry.location.lat, lng: all.results[0].geometry.location.lng });
if (i == result.length - 1) {
res.render("index.ejs", { layout: false,locationmap:locations});
}
});
});
});
ここには2つの問題があります。
私のループはconsole.log()にしようとすると4回実行され、コンソールではそのvarが4回表示されます。
なぜ私はいくつかの回避策を行い、if文の中でres.renderを行ったリクエスト本体をループ外で使用します。