| const path = require("path"); |
|
|
| const express = require("express"); |
| const bodyParser = require("body-parser"); |
| const cors = require("cors"); |
| const authRoutes = require("./routes/auth"); |
| const userRoutes = require("./routes/user"); |
| const roomRoutes = require("./routes/room"); |
| const mongoose = require("mongoose"); |
| const cookieParser = require("cookie-parser"); |
| require("dotenv").config(); |
|
|
| const MODE = process.env.MODE || "DEV" |
| const port = process.env.PORT; |
|
|
| mongoose |
| .connect(process.env.CONNECTION_STRING) |
| .then((res) => console.log("Connected to MongoDB")) |
| .catch((err) => console.log("Error in connecting to database")); |
|
|
| const app = express(); |
| const http = require("http"); |
| const server = http.createServer(app); |
| const { socketIOServerInit } = require("./socket"); |
|
|
| app.get("/health-check", (req, res, next) => { |
| res.status(200).send("OK"); |
| }); |
| app.use(cors({ origin: process.env.CORS_ALLOWED_HOST, credentials: true })); |
| app.use(bodyParser.json()); |
| app.use((req, res, next) => { |
| |
| |
| |
| next(); |
| }); |
| app.use(cookieParser()); |
|
|
| socketIOServerInit(server); |
|
|
| app.use((req, res, next) => { |
| console.log(req.url); |
| next(); |
| }); |
|
|
| |
| app.use("/api/auth", authRoutes); |
| app.use("/api/user", userRoutes); |
| app.use("/api/room", roomRoutes); |
|
|
| if (MODE=="PROD") { |
| console.log('Hello') |
| app.use(express.static('../frontend/dist')); |
| app.get("/*", (req,res,next) => { |
| try { |
| res.sendFile(path.join(__dirname,"../frontend/dist/index.html")) |
| } catch(err) { |
| next(err) |
| } |
| }) |
| } |
|
|
| app.use((error, req, res, next) => { |
| const status = error.status || 500; |
| console.log(error); |
| res.status(status).json({ |
| message: "Something went wrong", |
| description: error?.message || "Internal server error", |
| }); |
| }); |
|
|
| server.listen(port, () => { |
| console.log("Listening on server", port); |
| }); |
|
|