personnal/ecole/src copy/app.js

43 lines
1.3 KiB
JavaScript

// Chargement des variables d'environnement depuis .env
require('dotenv').config();
// Importation des modules nécessaires
const express = require('express');
const path = require('path');
// Importation des modules personnalisés
const jwtMiddleware = require('./middlewares/jwtMiddleware');
const logger = require('./utils/logger');
const { db } = require('./db/db-connect');
const routes = require('./routes');
// Initialisation de l'application Express
const app = express();
// Configuration du moteur de rendu HTML avec EJS
app.set('view engine', 'ejs');
app.engine('ejs', require('ejs').__express);
// Configuration pour la gestion des corps de requêtes en JSON
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
// Middlewares on use
app.use(jwtMiddleware);
// Spécification du dossier contenant les fichiers statiques pour le frontend
app.use(express.static(path.join(process.cwd(), 'public')));
// Initialisation de Materialize CSS pour le frontend
app.use('/materialize', express.static(path.join(process.cwd(), 'public/css/materialize-css/dist')));
app.use('/', routes);
// Middleware pour la gestion des erreurs
app.use((err, req, res, next) => {
logger.log('error', err.stack);
res.status(500).send('Quelque chose a mal tourné !');
});
module.exports = app;