index.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. const config = require('./config');
  2. const {initLogger, getLog} = require('./core/getLogger');
  3. initLogger(config);
  4. const log = getLog();
  5. const express = require('express');
  6. const compression = require('compression');
  7. const app = express();
  8. const SqliteConnectionPool = require('./core/SqliteConnectionPool');
  9. async function main() {
  10. const connPool = new SqliteConnectionPool(20, config);
  11. log('Opening database');
  12. await connPool.init();
  13. let devModule = undefined;
  14. if (config.branch == 'development') {
  15. const devFileName = './dev.js'; //ignored by pkg -50Mb executable size
  16. devModule = require(devFileName);
  17. devModule.webpackDevMiddleware(app);
  18. }
  19. app.use(compression({ level: 1 }));
  20. app.use(express.json());
  21. if (devModule)
  22. devModule.logQueries(app);
  23. app.use(express.static(config.publicDir, { maxAge: '30d' }));
  24. require('./routes').initRoutes(app, connPool, config);
  25. if (devModule) {
  26. devModule.logErrors(app);
  27. } else {
  28. app.use(function(err, req, res, next) {
  29. log(LM_ERR, err.stack);
  30. res.sendStatus(500);
  31. });
  32. }
  33. app.listen(config.port, config.ip, function() {
  34. log('Server is ready');
  35. });
  36. }
  37. main();