rooster.io/database.js

43 lines
1 KiB
JavaScript
Raw Normal View History

2015-08-15 21:48:38 +02:00
//database.js
/**
* Module for using a database interface
* Either local (NeDB) or remote (MongoDB) based on configuration values.
* @module database
2015-08-16 13:48:08 +02:00
* @author Bram van der Veen <96aa48@gmail.com>
*/
//Import first-party modules.
2016-06-18 15:06:51 +02:00
const fs = require('fs');
2015-08-15 21:48:38 +02:00
//Import self-written modules.
2016-06-18 15:06:51 +02:00
const config = require('./configuration');
/**
* Function for using a database interface.
* Either local (NeDB) or remote (MongoDB).
* @return {Object} database - Entire database engine (NeDB/MongoDB).
*/
module.exports = () => {
2015-08-15 21:48:38 +02:00
if (!config().localDatabase) return require('mongoskin').db('mongodb://' + config().database);
else {
2016-06-18 15:06:51 +02:00
let databases = {
2015-08-15 21:48:38 +02:00
index: new (require('nedb'))({ filename: __dirname + '/resources/databases/index.db', autoload: true})
};
return {
'collection': (collection) => {
2016-06-18 15:06:51 +02:00
let database = databases[collection];
2015-08-15 21:48:38 +02:00
database.drop = () => {
2015-08-15 21:48:38 +02:00
fs.writeFileSync(database.filename, '');
}
return database;
},
'close': () => {
2015-08-15 21:48:38 +02:00
return;
}
}
}
}