You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Hydro/hydro/service/db.js

23 lines
728 B
JavaScript

const Mongo = require('mongodb');
const bus = require('./bus');
const options = require('../options');
let mongourl = 'mongodb://';
if (options.db.username) mongourl += `${options.db.username}:${options.db.password}@`;
mongourl += `${options.db.host}:${options.db.port}/${options.db.name}`;
/**
* @type {import('mongodb').Db}
*/
let db = null;
Mongo.MongoClient.connect(mongourl, { useNewUrlParser: true, useUnifiedTopology: true })
.then((Database) => {
db = Database.db(options.db.name);
db.Db = Database;
bus.publish('system_database_connected', null);
});
global.Hydro.service.db = module.exports = {
collection: (c) => db.collection(c),
dropDatabase: () => db.dropDatabase(),
};