67 lines
1.6 KiB
JavaScript
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);
|