私のnodejsアプリケーションでmaxmind opensourceデータベースを開こうとしています。私のアプリケーションは、JavaアプリケーションからIPアドレスのリストを受信します。アプリケーションは、各ipに対応する緯度と経度を返します。私はこれを同期的に行ってきましたが、私は非同期的にやりたいことを少し速くしたいのです。私はこれのためのコードを書いたが、アプリケーションは毎回殺される。私は、その理由が同じデータベースの同時オープン(私は間違っているかもしれない:D)かもしれないと推測しています。私は以下のコードを投稿しています。それを見て、私が間違っている場所についていくつかの提案をしてください。ありがとう!!!NodejsでMaxmindを開く
app.post('/endPoint', function(req, res){
var obj = req.body;
var list = [];
var ipList = obj.ipList;
for(var i = 0; i<ipList.length; i++){
var ip = ipList[i];
//console.log(i);
maxmind.open('./GeoLite2-City.mmdb', function(err, cityLookup){
if(err) throw err;
console.log("open database");
var city = cityLookup.get(ip);
if(city!=null){
var cordinates = {'latitude': city.location.latitude, 'longitude': geodata.location.longitude};
//console.log(cordinates);
list.push(cordinates);
}
if(list.length == ipList.length){
res.json({finalMap: list});
}
});
}
});
ねえ!!答えに感謝します。データベースを一度に開くだけで、実際にはもっと速く動作しました。 –