ludo-web-multiplayer/backend/server.js
2022-05-28 20:09:46 +02:00

90 lines
1.9 KiB
JavaScript

const express = require("express");
const cors = require("cors");
const cookieParser = require("cookie-parser");
const session = require("express-session");
const app = express();
app.use(cookieParser());
app.use(
express.urlencoded({
extended: true,
})
);
app.use(express.json());
app.set("trust proxy", 1);
app.use(
cors({
origin: [
"http://localhost:5000",
"https://localhost:5000",
"http://localhost:3001",
"http://localhost:3000",
],
credentials: true,
})
);
const PORT = 5000;
//DATABASE CONFIG
const mongoose = require("mongoose");
mongoose.set("useFindAndModify", false);
const CONNECTION_URI = require("./credentials.js");
mongoose
.connect(CONNECTION_URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
})
.then(() => {
console.log("MongoDB Connected…");
})
.catch((err) => console.error(err));
//SESSION CONFIG]
var MongoDBStore = require("connect-mongodb-session")(session);
var store = new MongoDBStore({
uri: CONNECTION_URI,
collection: "sessions",
});
app.use(
session({
secret: "lalala",
resave: true,
saveUninitialized: false,
store: store,
cookie: {
httpOnly: false,
secure: false,
},
})
);
if (process.env.NODE_ENV === "production") {
app.use(express.static("/app/build"));
app.get("/", (req, res) => {
res.sendFile("/app/build/index.html");
});
}
//ROUTES CONFIG
const roomRoutes = require("./routes/room");
const playerRoutes = require("./routes/player");
const gameRoutes = require("./routes/game");
app.use("/player", playerRoutes);
app.use("/room", roomRoutes);
app.use("/game", gameRoutes);
const server = app.listen(PORT, () => {
console.log("Server runs on port " + PORT);
});
const socket = require("socket.io");
const io = socket(server, {
cors: {
origin: "http://localhost:3000",
},
});
io.on("connection", () => {
console.log("a user connected");
});