37 lines
966 B
JavaScript
37 lines
966 B
JavaScript
|
const mongoose = require('mongoose');
|
||
|
const fs = require('fs')
|
||
|
const config = JSON.parse(fs.readFileSync("config.json"));
|
||
|
|
||
|
const { MongoMemoryServer } = require('mongodb-memory-server');
|
||
|
let mongod = null;
|
||
|
|
||
|
const connectDB = async() => {
|
||
|
try {
|
||
|
let dbUrl = `mongodb://${process.env.DEBUG ? config.mongo_ip_debug : config.mongo_ip}/dragonroll`;
|
||
|
if(process.env.NODE_ENV == 'test'){
|
||
|
mongod = await MongoMemoryServer.create();
|
||
|
dbUrl = mongod.getUri();
|
||
|
}
|
||
|
|
||
|
const conn = await mongoose.connect(dbUrl);
|
||
|
|
||
|
console.log(`Connected to MongoDB: ${dbUrl}`);
|
||
|
} catch(err) {
|
||
|
console.log(err);
|
||
|
process.exit(1);
|
||
|
}
|
||
|
};
|
||
|
|
||
|
const disconnectDB = async() => {
|
||
|
try {
|
||
|
await mongoose.connection.close();
|
||
|
if(mongod) {
|
||
|
await mongod.stop();
|
||
|
}
|
||
|
} catch(err) {
|
||
|
console.log(err);
|
||
|
process.exit(1);
|
||
|
}
|
||
|
};
|
||
|
|
||
|
module.exports = { connectDB, disconnectDB };
|