const mongoose = require('mongoose'); let db; const mongoOptions = { useNewUrlParser: true, useUnifiedTopology: true, }; const connectToServer = (callback) => { if (db) { console.warn('Already connected to the database'); return callback(); } const connectionUrl = process.env.MONGODB_PASSWORD ? `mongodb://${process.env.MONGODB_USERNAME}:${process.env.MONGODB_PASSWORD}@${process.env.MONGODB_HOST}:${process.env.MONGODB_PORT}/${process.env.MONGODB_NAME}?authMechanism=DEFAULT&authSource=admin` : `mongodb://${process.env.HOST}/${process.env.DB_NAME}`; const message = process.env.MONGODB_PASSWORD ? 'Mongodb connected with password' : 'Mongodb connected without password' mongoose.connect(connectionUrl, mongoOptions, (err) => { if (err) { console.error('Error connecting to MongoDB:', err); } else { console.log(message); db = mongoose.connection; } return callback(err); }); }; const disconnectFromServer = () => { if (db) { mongoose.disconnect(); console.log('Disconnected from MongoDB'); } else { console.warn('Not connected to the database'); } }; module.exports = { connectToServer, disconnectFromServer, };