mirror of
				https://github.com/monkeytypegame/monkeytype.git
				synced 2025-11-01 03:39:15 +08:00 
			
		
		
		
	* 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);
 | |
|   },
 | |
| };
 |