EvalueTonSavoir/server/app.js

90 lines
2.3 KiB
JavaScript
Raw Normal View History

2024-03-29 20:08:34 -04:00
// Import API
const express = require("express");
const http = require("http");
const dotenv = require('dotenv')
// Import Sockets
2024-04-05 20:10:59 -04:00
const { setupWebsocket } = require("./socket/socket");
2024-03-29 20:08:34 -04:00
const { Server } = require("socket.io");
//import routers
const userRouter = require('./routers/users.js');
const folderRouter = require('./routers/folders.js');
const quizRouter = require('./routers/quiz.js');
const imagesRouter = require('./routers/images.js')
2024-09-24 17:24:32 -04:00
const AuthManager = require('./auth/auth-manager.js')
const authRouter = require('./routers/auth.js')
2024-03-29 20:08:34 -04:00
// Setup environement
dotenv.config();
2024-09-29 18:39:24 -04:00
// Setup urls from configs
const use_ports = (process.env['USE_PORTS']).toLocaleLowerCase() == "true"
process.env['FRONTEND_URL'] = process.env['SITE_URL'] + (use_ports ? `:${process.env['FRONTEND_PORT']}`:"")
process.env['BACKEND_URL'] = process.env['SITE_URL'] + (use_ports ? `:${process.env['PORT']}`:"")
2024-03-29 20:08:34 -04:00
const db = require('./config/db.js');
const errorHandler = require("./middleware/errorHandler.js");
// Start app
const app = express();
const cors = require("cors");
const bodyParser = require('body-parser');
const configureServer = (httpServer) => {
return new Server(httpServer, {
2024-04-05 17:34:39 -04:00
path: "/socket.io",
2024-03-29 20:08:34 -04:00
cors: {
origin: "*",
methods: ["GET", "POST"],
credentials: true,
},
});
};
// Start sockets
const server = http.createServer(app);
const io = configureServer(server);
setupWebsocket(io);
app.use(cors());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
// Create routes
app.use('/api/user', userRouter);
app.use('/api/folder', folderRouter);
app.use('/api/quiz', quizRouter);
app.use('/api/image', imagesRouter);
app.use('/api/auth', authRouter);
2024-03-29 20:08:34 -04:00
2024-09-24 17:24:32 -04:00
// Add Auths methods
const session = require('express-session');
2024-09-27 23:02:53 -04:00
app.use(session({
secret: process.env['SESSION_Secret'],
resave: false,
saveUninitialized: false,
cookie: { secure: process.env.NODE_ENV === 'production' }
}));
2024-09-24 17:24:32 -04:00
authManager = new AuthManager(app)
2024-03-29 20:08:34 -04:00
app.use(errorHandler)
// Start server
async function start() {
2024-04-05 20:10:59 -04:00
const port = process.env.PORT || 4400;
2024-03-29 20:08:34 -04:00
// Check DB connection
await db.connect()
db.getConnection();
console.log(`Connexion MongoDB établie`);
server.listen(port, () => {
console.log(`Serveur écoutant sur le port ${port}`);
});
}
start();