var express = require('express'); var app = module.exports = express(); var bodyParser = require('body-parser'); var settings = require('./application/settings.js'); var mail = require('./application/mail.js'); var database = require('./application/database.js'); var auth = require('./application/auth.js'); var path = require('path'); // Body parser middleware app.use(bodyParser.json()); app.use(bodyParser.urlencoded({extended: true})); app.use('/static', express.static(path.join(__dirname, '/static'))); // Auth middleware var requestToken = function(request, response, next) { auth.init(request, response, next); }; // Load routes app.use('/', requestToken, require('./application/router.js')); app.start = function() { var listener = app.listen(settings.app().port, function() { var servicePath = 'http://' + listener.address().address + ':' + listener.address().port; mail.init(); database.init(); database.testEmail(); let packageJson = require('./package.json'); console.log(`Web server ${packageJson.name} listening at: ${servicePath}`); if (settings.app().debug) { console.log(`${packageJson.name} service debug mode enabled`); } }); return listener; }; if (require.main === module) { app.start(); }