monkeytype/backend/init/mongodb.js

41 lines
946 B
JavaScript
Raw Normal View History

2021-06-07 00:32:37 +08:00
const { MongoClient } = require("mongodb");
let mongoClient;
module.exports = {
async connectDB() {
let options = {
2021-06-07 00:32:37 +08:00
useNewUrlParser: true,
useUnifiedTopology: true,
};
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)
2021-06-07 00:32:37 +08:00
.then((client) => {
mongoClient = client;
})
.catch((e) => {
console.log(e);
process.exit(1);
});
},
mongoDB() {
2021-11-24 05:54:17 +08:00
if (!mongoClient) throw new Error("Could not connect to the database");
2021-06-07 00:32:37 +08:00
return mongoClient.db(process.env.DB_NAME);
},
};