monkeytype/backend/init/mongodb.js
2022-01-18 15:42:56 +01:00

42 lines
1,016 B
JavaScript

const { MongoClient } = require("mongodb");
let mongoClient;
module.exports = {
async connectDB() {
let options = {
useNewUrlParser: true,
useUnifiedTopology: true,
connectTimeoutMS: 2000,
serverSelectionTimeoutMS: 2000,
};
if (process.env.DB_USERNAME && process.env.DB_PASSWORD) {
options.auth = {
username: process.env.DB_USERNAME,
password: process.env.DB_PASSWORD,
};
}
if (process.env.DB_AUTH_MECHANISM) {
options.authMechanism = process.env.DB_AUTH_MECHANISM;
}
if (process.env.DB_AUTH_SOURCE) {
options.authSource = process.env.DB_AUTH_SOURCE;
}
return MongoClient.connect(process.env.DB_URI, options)
.then((client) => {
mongoClient = client;
})
.catch((e) => {
console.error(e.message);
console.error("FAILED TO CONNECT TO DATABASE. EXITING...");
process.exit(1);
});
},
mongoDB() {
return mongoClient.db(process.env.DB_NAME);
},
};