lts-stats-api/app/db/mongo/mongoDBPool.js
2023-01-15 18:42:26 +01:00

42 lines
871 B
JavaScript

const { MongoClient } = require('mongodb');
const {
MONGO_HOST,
MONGO_PORT,
MONGO_USER,
MONGO_PASS,
MONGO_DB,
} = process.env;
const uri = `mongodb://${MONGO_USER}:${MONGO_PASS}@${MONGO_HOST}:${MONGO_PORT}/?maxPoolSize=20`;
const getMongoConnection = async() => {
const client = new MongoClient(uri);
return await client.connect();
};
const getMongoDatabase = (client, db) => {
const DB = db || MONGO_DB;
return client.db(DB);
};
const mongoExecute = async(fn, dbName = MONGO_DB) => {
let conn;
try {
conn = await getMongoConnection();
const db = conn.db(dbName);
const result = await fn(db, conn);
return result;
} catch (err) {
console.log('MOMGODB ERROR:', err.message);
} finally {
if (conn) {
await conn.close();
}
}
};
module.exports = {
mongoExecute,
getMongoConnection,
getMongoDatabase,
};