You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.5 KiB
59 lines
1.5 KiB
const express = require('express');
|
|
const session = require('express-session');
|
|
const cors = require('cors');
|
|
const bodyParser = require('body-parser');
|
|
const crypto = require('crypto');
|
|
const authRoutes = require('./routes/authRoutes');
|
|
const DatabaseService = require('./services/DatabaseService');
|
|
|
|
const app = express();
|
|
const port = 3003;
|
|
|
|
// Middleware
|
|
app.use(cors(
|
|
{
|
|
origin: 'http://localhost:3000',
|
|
credentials: true
|
|
}
|
|
)); // Autoriser les requêtes cross-origin
|
|
app.use(bodyParser.json()); // Parser le body des requêtes en JSON
|
|
|
|
// Session
|
|
const secret = crypto.randomBytes(32).toString('hex');
|
|
app.use(session({
|
|
secret: secret,
|
|
resave: false,
|
|
saveUninitialized: true,
|
|
cookie: {
|
|
secure: process.env.NODE_ENV === 'production' ? true : false,
|
|
maxAge: 60 * 60 * 1000
|
|
}
|
|
}));
|
|
|
|
// Middleware pour les routes
|
|
app.use('/', authRoutes);
|
|
|
|
// Middleware de gestion des erreurs
|
|
app.use((err, req, res, next) => {
|
|
console.error(err.stack);
|
|
res.status(500).send('Erreur interne du serveur!');
|
|
});
|
|
|
|
// Middleware pour la gestion des erreurs 404
|
|
app.use((req, res) => {
|
|
res.status(404).send('Page non trouvée');
|
|
});
|
|
|
|
// Connexion à la base de données sqlite3 au démarrage du serveur
|
|
const databaseService = new DatabaseService();
|
|
databaseService.connect()
|
|
.then(() => {
|
|
// Lancer le serveur
|
|
app.listen(port, () => {
|
|
console.log(`Serveur lancé sur le port ${port}`);
|
|
});
|
|
})
|
|
.catch((err) => {
|
|
console.error(err);
|
|
});
|