fix: move fs.mkdirSync inside start() to prevent module-level crash
This commit is contained in:
+9
-24
@@ -26,10 +26,6 @@ app.use(cors({
|
|||||||
}));
|
}));
|
||||||
app.use(express.json({ limit: '10mb' }));
|
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 ──────────────────────────────────────────────
|
// ─── Routes API ──────────────────────────────────────────────
|
||||||
app.use('/api/auth', authRoutes);
|
app.use('/api/auth', authRoutes);
|
||||||
app.use('/api/invoices', invoicesRoutes);
|
app.use('/api/invoices', invoicesRoutes);
|
||||||
@@ -53,26 +49,15 @@ app.use((err: Error, _req: express.Request, res: express.Response, _next: expres
|
|||||||
|
|
||||||
// ─── Démarrage ────────────────────────────────────────────────
|
// ─── Démarrage ────────────────────────────────────────────────
|
||||||
async function start() {
|
async function start() {
|
||||||
// Démarrer Express immédiatement — la connexion DB se fera à la première requête
|
// Créer les répertoires uploads (ici pour éviter un crash module-level)
|
||||||
// (testConnection() supprimé du démarrage pour éviter un blocage au lancement)
|
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 () => {
|
app.listen(config.port, async () => {
|
||||||
console.log(`🚀 NotesFrais backend démarré sur le port ${config.port}`);
|
console.log(`🚀 NotesFrais backend démarré sur le port ${config.port}`);
|
||||||
console.log(` Environnement : ${config.nodeEnv}`);
|
console.log(` Environnement : ${config.nodeEnv}`);
|
||||||
console.log(` Frontend autorisé : ${config.frontendUrl}`);
|
console.log(` Frontend autorisé : ${
|
||||||
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;
|
|
||||||
Reference in New Issue
Block a user