44 lines
1.3 KiB
JavaScript
44 lines
1.3 KiB
JavaScript
import express from 'express';
|
|
import { promises as fs } from 'fs';
|
|
import path from 'path';
|
|
import { fileURLToPath } from 'url';
|
|
|
|
const app = express();
|
|
const port = 3000;
|
|
|
|
// Obtenir le chemin du répertoire parent
|
|
const __filename = fileURLToPath(import.meta.url);
|
|
const __dirname = path.dirname(__filename);
|
|
|
|
// Middleware pour gérer les requêtes depuis le frontend
|
|
app.use((req, res, next) => {
|
|
res.setHeader('Access-Control-Allow-Origin', '*');
|
|
res.setHeader('Access-Control-Allow-Methods', 'GET, POST');
|
|
next();
|
|
});
|
|
|
|
// Le dossier assets est situé un niveau au-dessus du dossier services
|
|
const assetsDir = path.join(__dirname, '..', 'quizz/geography-history');
|
|
console.log(assetsDir)
|
|
|
|
// Middleware pour servir les fichiers statiques
|
|
app.use('/images', express.static(assetsDir));
|
|
|
|
// API pour lister les fichiers d'image
|
|
app.get('/images-list', async (req, res) => {
|
|
try {
|
|
const files = await fs.readdir(assetsDir);
|
|
|
|
// Filtrer pour ne renvoyer que les fichiers d'image (par ex : .jpg, .png)
|
|
const images = files.filter(file => /\.(jpg|jpeg|png|gif)$/.test(file));
|
|
res.json(images);
|
|
} catch (err) {
|
|
|
|
res.status(500).send('Erreur lors de la lecture du dossier');
|
|
}
|
|
});
|
|
|
|
app.listen(port, () => {
|
|
console.log(`Serveur démarré sur http://localhost:${port}`);
|
|
});
|