Files
XP-System/app.js
2021-01-14 10:20:49 -08:00

79 lines
1.8 KiB
JavaScript

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) {
socket.on('add:xp', function(data) {
io.sockets.emit("added:xp", data);
});
});