Files
SSA-Chat-Backend/src/index.js
2025-06-23 18:55:08 +05:30

89 lines
2.1 KiB
JavaScript

const express = require("express");
const cors = require("cors");
const { createServer } = require("node:http");
const { Server } = require("socket.io");
const { errorConverter, errorHandler } = require('./middlewares/error.js');
const verifyJWTToken = require("./middlewares/verifyJWTToken.js");
const app = express();
const config = require("./config/config.js");
const morgan = require("./config/morgan");
const compression = require("compression");
if (config.env !== "test") {
app.use(morgan.successHandler);
app.use(morgan.errorHandler);
}
// const IP = '192.168.50.127'; // Replace with your local IP address
// gzip compression
app.use(compression());
// socket io
const server = createServer(app);
const io = new Server(server, {
pingTimeout: 60000,
cors: {
origin: "*",
credentials: true,
},
});
app.set("io", io);
var corOptions = {
origin: "*",
};
//middleware
app.use(cors(corOptions));
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
// make images access public by ther correct path
app.use("/public", express.static("public"));
app.get("/", (req, res) => {
res.json({ message: "hello from api" });
});
// app.use(verifyJWTToken); // verify jwt token in socket
// router
const router = require("./routes");
const db = require("./models/index.js");
const { initializeSocketIO } = require("./socket/index.js");
const ApiError = require("./utils/handler/ApiError.handler.js");
// api route
app.use("/api", router);
//port
const PORT = process.env.PORT || 8000;
// send back a 404 error for any unknown api request
app.use((req, res, next) => {
next(new ApiError(404, "Not found"));
});
// convert error to ApiError, if needed
app.use(errorConverter);
// handle error
app.use(errorHandler);
//server
initializeSocketIO(io);
db.sequelize
.sync({ force: false })
.then(() => {
console.log("Yes re-sync done!");
server.listen(PORT, () => {
// server.listen(PORT, IP, () => {
console.log(`Server is running on port ${PORT}`);
// console.log(`Server running at http://${IP}:${PORT}`);
});
})
.catch((err) => {
console.log("Error : ", err.message);
// process.exit(1);
});