const express = require('express'); const expressLayouts = require('express-ejs-layouts'); const mongoose = require('mongoose'); const passport = require('passport'); const flash = require('connect-flash'); const session = require('express-session'); const bodyParser = require('body-parser'); const http = require('http'); const path = require('path'); const fs = require('fs'); const dotenv = require('dotenv'); const socket = require('socket.io'); dotenv.config(); const app = express(); // Passport Config require('./config/passport')(passport); // DB Config const db = require('./config/keys').mongoURI; // Connect to MongoDB mongoose .connect( process.env.DB_URI || 'mongodb://localhost/27017', { useNewUrlParser: true, useUnifiedTopology: true} ) .then(() => console.log('MongoDB Connected')) .catch(err => console.log(err)); // EJS app.use(expressLayouts); app.set('view engine', 'ejs'); // Body Parser app.use(bodyParser.urlencoded({ extended: false })) app.use(bodyParser.json()) // Express session app.use( session({ secret: 'secret', resave: true, saveUninitialized: true }) ); // Passport middleware app.use(passport.initialize()); app.use(passport.session()); // Connect flash app.use(flash()); // Global variables app.use(function(req, res, next) { res.locals.success_msg = req.flash('success_msg'); res.locals.error_msg = req.flash('error_msg'); res.locals.error = req.flash('error'); next(); }); // Routes app.use('/', require('./routes/index.js')); app.use('/users', require('./routes/users.js')); const PORT = process.env.PORT || 8080; const server = app.listen(PORT, function() { console.log(`Server listening on port ${PORT}`); }); let io = socket(server); io.on('connection', function(socket) { console.log('connected'); socket.on('add:xp', function(data) { io.sockets.emit("added:xp", data); }); });