fix: move fs.mkdirSync inside start() to prevent module-level crash

This commit is contained in:
deploy
2026-04-29 10:01:10 +00:00
parent 5c603913f7
commit 826e7a5199
+9 -24
View File
@@ -26,10 +26,6 @@ app.use(cors({
}));
app.use(express.json({ limit: '10mb' }));
// ─── Répertoires uploads ─────────────────────────────────────
fs.mkdirSync(path.join(config.uploadsDir, 'images'), { recursive: true });
fs.mkdirSync(path.join(config.uploadsDir, 'pdfs'), { recursive: true });
// ─── Routes API ──────────────────────────────────────────────
app.use('/api/auth', authRoutes);
app.use('/api/invoices', invoicesRoutes);
@@ -53,26 +49,15 @@ app.use((err: Error, _req: express.Request, res: express.Response, _next: expres
// ─── Démarrage ────────────────────────────────────────────────
async function start() {
// Démarrer Express immédiatement — la connexion DB se fera à la première requête
// (testConnection() supprimé du démarrage pour éviter un blocage au lancement)
// Créer les répertoires uploads (ici pour éviter un crash module-level)
try {
fs.mkdirSync(path.join(config.uploadsDir, 'images'), { recursive: true });
fs.mkdirSync(path.join(config.uploadsDir, 'pdfs'), { recursive: true });
} catch (err: any) {
console.warn('Avertissement: impossible de créer les répertoires uploads:', err.message);
}
app.listen(config.port, async () => {
console.log(`🚀 NotesFrais backend démarré sur le port ${config.port}`);
console.log(` Environnement : ${config.nodeEnv}`);
console.log(` Frontend autorisé : ${config.frontendUrl}`);
console.log(` DATABASE_URL: ${process.env.DATABASE_URL ? process.env.DATABASE_URL.replace(/:([^@]+)@/, ':***@') : '[non défini — utilise défaut localhost]'}`);
// Vérifier la connexion DB en arrière-plan
try {
await testConnection();
} catch (err: any) {
console.error('Avertissement: connexion PostgreSQL échouée au démarrage:', err.message);
// Ne pas crasher — les requêtes retourneront des erreurs 500 si la DB est inaccessible
}
});
}
start().catch((err) => {
console.error('Impossible de démarrer le serveur :', err.message);
process.exit(1);
});
export default app;
console.log(` Frontend autorisé : ${