ludo-web-multiplayer/backend/server.js

67 lines
1.6 KiB
JavaScript

const express = require("express");
const cors = require("cors");
const cookieParser = require("cookie-parser");
const { sessionMiddleware, wrap } = require("./controllers/serverController");
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:3000",
credentials: true,
})
);
const PORT = 5000;
app.use(sessionMiddleware);
//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
if (process.env.NODE_ENV === "production") {
app.use(express.static("/app/build"));
app.get("/", (req, res) => {
res.sendFile("/app/build/index.html");
});
}
const server = app.listen(PORT, () => {
console.log("Server runs on port " + PORT);
});
const io = require("socket.io")(server, {
cors: {
origin: "http://localhost:3000",
credentials: true,
},
});
io.use(wrap(sessionMiddleware));
io.on("connection", (socket) => {
socket.emit("client data", JSON.stringify(socket.request.session));
});
//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);