var express = require('express'); var app = module.exports = express(); var bodyParser = require('body-parser'); var config = require('../application/config.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(config.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 (config.app.debug) { console.log(`${packageJson.name} service debug mode enabled`); } }); return listener; }; if (require.main === module) { app.start(); }