mirror of
https://github.com/monkeytypegame/monkeytype.git
synced 2025-02-05 13:27:49 +08:00
53cbd9372b
* Add Option to Use MongoDB Credentials * updated example Co-authored-by: Jack <bartnikjack@gmail.com>
40 lines
946 B
JavaScript
40 lines
946 B
JavaScript
const { MongoClient } = require("mongodb");
|
|
|
|
let mongoClient;
|
|
|
|
module.exports = {
|
|
async connectDB() {
|
|
let options = {
|
|
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)
|
|
.then((client) => {
|
|
mongoClient = client;
|
|
})
|
|
.catch((e) => {
|
|
console.log(e);
|
|
process.exit(1);
|
|
});
|
|
},
|
|
mongoDB() {
|
|
if (!mongoClient) throw new Error("Could not connect to the database");
|
|
return mongoClient.db(process.env.DB_NAME);
|
|
},
|
|
};
|