diff --git a/index.js b/index.js index 04c4758..2f07e34 100644 --- a/index.js +++ b/index.js @@ -1,8 +1,35 @@ -var express = require('express'); -var app = express(); +const express = require('express'), + PropertiesReader = require('properties-reader'); +const app = express(); + +//Globals + +global._base = __dirname + '/'; +global._db = PropertiesReader(_base + 'resources/db.properties'); +global._env = app.get('env'); +global._isDev = _env === 'development'; +global._isProd = _env === 'production'; + +console.info = function(message) { + console.log('[INFO] ' + message); +} + +console.debug = function(message) { + console.log('[DEBUG] ' + message); +} + +console.critical = function(message) { + console.log('[!!! CRITICAL !!!] ' + message); +} + +const setUpDatabase = require(_base + 'services/SetupDatabaseService'); +setUpDatabase(); + + app.get('/api', (req, res) => { - res.json({message: 'Welcome to the Server'}); + res.json({message: 'Welcome to the Server'}); }); -app.listen(8880, ()=>{ - console.log('API listening on port 8081'); + +app.listen(8081, ()=>{ + console.log('API listening on port 8081'); }); diff --git a/resources/db.properties b/resources/db.properties new file mode 100644 index 0000000..0890b8f --- /dev/null +++ b/resources/db.properties @@ -0,0 +1,8 @@ +db.connection.development=mongodb://127.0.0.1:27017/image-board + +db.collection.categories=categories +db.collection.boards=boards +db.collection.threads=threads +db.collection.replies=replies +db.collection.mods=mods +db.collection.bans=bans \ No newline at end of file diff --git a/services/SetupDatabaseService.js b/services/SetupDatabaseService.js new file mode 100644 index 0000000..e6c3f4d --- /dev/null +++ b/services/SetupDatabaseService.js @@ -0,0 +1,20 @@ +let mongoose = require('mongoose'); + +module.exports = function() { + let url = _db.get('db.connection.' + _env); + console.info('Attempting to connect to ' + url); + mongoose.connect(url); + mongoose.connection.on('connected', function() { + console.info('Database connection established'); + }); + + mongoose.connection.on('error', function(err) { + console.critical('Cannot connect to database'); + console.critical(JSON.stringify(err)); + return process.exit(); + }); + + mongoose.connection.on('disconnected', function() { + console.info('Database disconnected'); + }); +}