server.js

  1. /**
  2. * @file Eunomia's main file and entry point
  3. * @author Antonio Olmo Titos <a@olmo-titos.info>
  4. * @exports server
  5. */
  6. // Configuration:
  7. const SELF = require('./package'),
  8. CONFIG = require('./config');
  9. // External packages:
  10. const EXPRESS = require('express');
  11. // Internal packages:
  12. const LOGGING = require('./lib/logging'),
  13. AUTHENTICATION = require('./lib/authentication'),
  14. PERSISTENCE = require('./lib/persistence'),
  15. TIMEZONES = require('./lib/timezones'),
  16. ROUTING = require('./lib/routing');
  17. // Constants:
  18. const APP = new EXPRESS();
  19. // Set up static assets:
  20. APP.use(EXPRESS.static('static', {redirect: true}));
  21. // Set up aspects:
  22. LOGGING.setUp();
  23. AUTHENTICATION.setUp(APP);
  24. PERSISTENCE.setUp();
  25. TIMEZONES.setUp();
  26. ROUTING.setUp(APP);
  27. // Listen for connections:
  28. APP.listen(CONFIG.port);
  29. LOGGING.info(`${SELF.name} ${SELF.version} set up${CONFIG.debug ? ' in debug mode' : ''} and listening on port ${CONFIG.port}`);