Skip to content
Snippets Groups Projects
Select Git revision
  • 34af58ccfa1d4812120665cf45781ad57e8591f9
  • master default
2 results

IndexApproach.java

Blame
  • index.js 1.72 KiB
    const express = require('express');
    const fs = require('fs');
    const session = require('express-session');
    const bodyParser = require('body-parser');
    const mongoose = require('mongoose');
    const morgan = require('morgan');
    const mongoDBStore = require('connect-mongodb-session')(session);
    
    // Config
    const config = require('js-yaml').safeLoad(fs.readFileSync('./config.yml', 'utf8'));
    // Middlewares
    const userLoader = require('./middlewares/userLoader');
    const loginChecker = require('./middlewares/loginChecker');
    // Utils
    const render = require('./utils/render');
    const { warn, error } = require('./utils/notifications');
    // Routes
    const authRouter = require('./routes/auth');
    const charactersRouter = require('./routes/characters');
    // Crons
    require('./utils/crons');
    
    // Configuration
    const app = express();
    const store = new mongoDBStore({
      uri: 'mongodb://localhost/rolegame',
      collection: 'sessions'
    });
    store.on('error', function(error) {
      console.error(error);
    });
    app.set('view engine', 'pug');
    
    // Middlewares
    app.use(morgan('tiny'));
    app.use(session({ secret: config.secret, resave: false, saveUninitialized: false, store }));
    app.use(bodyParser.urlencoded({ extended: false }));
    app.use('/media', express.static('media'));
    app.use(userLoader);
    app.use(loginChecker);
    
    // Routes
    app.get('/', async (req, res) => {
      return render(req, res, 'home');
    });
    app.use('/auth', authRouter);
    app.use('/characters', charactersRouter);
    
    mongoose.connect('mongodb://localhost/rolegame', err => {
      if (err) {
        console.error('ERROR Unable to connect to Mongo database')
      } else {
        console.log('Server connected to Mongo database');
      }
      app.listen(config.port, () => {
        console.log(`Server listening on http://localhost:${config.port}`);
      });
    });