2021-06-07 00:32:37 +08:00
|
|
|
const { MongoClient } = require("mongodb");
|
|
|
|
|
|
|
|
let mongoClient;
|
|
|
|
|
|
|
|
module.exports = {
|
|
|
|
async connectDB() {
|
2021-12-14 00:00:09 +08:00
|
|
|
let options = {
|
2021-06-07 00:32:37 +08:00
|
|
|
useNewUrlParser: true,
|
|
|
|
useUnifiedTopology: true,
|
2021-12-14 00:00:09 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
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);
|
|
|
|
},
|
|
|
|
};
|