app.get('/games',function(req, res){
mongoClient.connect(function(err, client){
var response = '<table>\n';
const db = client.db("eshopdb");
const collection = db.collection("games");
if(err){
console.error(err);
}
else {
console.log("mongoClient.connect is OK");
};
collection.find().sort({title_eu: 1}).toArray(function(err, result) {
if (err) throw err;
var n = 0;
each(result,function(docs){
n++;
response = response + '<tr><td>' + docs.title_eu + '</td><td><a href="/game/' + docs._id + '">' + docs._id + '</td></tr>\n';
closeclient(n);
});
respnse = response + '</table>\n';
res.send(response);
function closeclient(n){
if (n == result.length){
client.close();
console.log(n, result.length)
var n = 0;
console.log("mongoClient.connect is close");
}
}
});
});
});
При первом запросе выводятся все документы из БД. Через функцию closeclient(n) я узнаю, что все документы выведены и закрываю коннект к mongodb. Если обновить страницу, то возникает ошибка, т.к. коннект закрыт, а новый не открывается. Если убрать closeclient(n) то ошибки нет. Но мне кажется, что нужно закрывать коннекты к БД после использования, а не копить их. Как правильно это реализовать?