Prova lo script con una connessione al database all'avvio del server e tutto viene eseguito su quella connessione.
Quindi avrai solo un MongoClient.connect
quando l'app ascolta piuttosto che per ogni query
const url = "mongodb://adminMongo:[email protected]:12345";
// outline the options for mongo db connection
const mongoOptions = { useUnifiedTopology: true };
// create a new mongo client to connect to the database
const client = new MongoClient(url, mongoOptions);
// connect to mongodb database on start of server
client.connect(function(err) {
if (err) {
console.log('Unable to connect to the MongoDB database');
// exit the process if a connection to the database cannot be made
process.exit(1);
} else {
// create local host server
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
}
});
Quindi quando vuoi interrogare il database non devi aprire una nuova connessione
per esempio. questa funzione dovrebbe funzionare senza bisogno di connettersi
function dbInsert(dataCategory, dataTitle, dataStart, dataEnd, dataInterval){
var doc = {data_category:dataCategory,
data_title:dataTitle,
data_start: dataStart,
data_end: dataEnd,
data_interval: dataInterval};
// insert document to 'users' collection using insertOne
statsDB.collection('stats').insertOne(doc, function(err, res) {
if(err) throw err;
console.log("Document inserted");
});
}