From deb791d1daf5fce26bf72f5f7de4d3357d68d702 Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Fri, 29 Aug 2025 10:03:20 +0200 Subject: [PATCH] feat(backend): Verbesserung der Server- und Umgebungsvariablen-Logik MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Hinzufügen von detaillierten Konsolenausgaben zur Überwachung des Serverstarts und der Umgebungsvariablen. - Implementierung von Fehlerbehandlungen beim Laden der .env-Datei und Überprüfung der erforderlichen Umgebungsvariablen. - Optimierung der Datenbank-Synchronisation mit klaren Erfolgsmeldungen und Fehlerausgaben. --- backend/config/loadEnv.js | 47 +++++++++++++++++++++++++++++++++++++-- backend/server.js | 33 ++++++++++++++++++++++++--- 2 files changed, 75 insertions(+), 5 deletions(-) diff --git a/backend/config/loadEnv.js b/backend/config/loadEnv.js index 8a51352..fd64529 100644 --- a/backend/config/loadEnv.js +++ b/backend/config/loadEnv.js @@ -6,15 +6,58 @@ import dotenv from 'dotenv'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); +console.log('🔍 [loadEnv] Starte Umgebungsvariablen-Loader...'); +console.log('🔍 [loadEnv] Aktuelles Verzeichnis:', process.cwd()); +console.log('🔍 [loadEnv] __dirname:', __dirname); + // Resolve backend/.env regardless of cwd const envPath = path.resolve(__dirname, '../.env'); +console.log('🔍 [loadEnv] .env Pfad:', envPath); + +// Prüfe ob .env-Datei existiert +import fs from 'fs'; +if (fs.existsSync(envPath)) { + console.log('✅ [loadEnv] .env-Datei gefunden'); + + // Datei-Inhalt prüfen (ohne Passwörter) + const envContent = fs.readFileSync(envPath, 'utf8'); + const envLines = envContent.split('\n').filter(line => line.trim() && !line.startsWith('#')); + console.log('📄 [loadEnv] .env-Datei enthält', envLines.length, 'Variablen'); + + // Zeige Variablen-Namen (ohne Werte) + envLines.forEach(line => { + const [key] = line.split('='); + if (key) { + console.log(' 📋', key.trim()); + } + }); +} else { + console.log('❌ [loadEnv] .env-Datei nicht gefunden!'); +} + +// Lade .env-Datei const result = dotenv.config({ path: envPath }); if (result.error) { - console.warn('[env] Konnte .env nicht laden:', result.error.message); + console.error('❌ [loadEnv] Fehler beim Laden der .env-Datei:', result.error.message); } else { + console.log('✅ [loadEnv] .env-Datei erfolgreich geladen'); + + // Prüfe wichtige Umgebungsvariablen + console.log('🔍 [loadEnv] Wichtige Umgebungsvariablen:'); + console.log(' DB_HOST:', process.env.DB_HOST); + console.log(' DB_USER:', process.env.DB_USER); + console.log(' DB_PASS:', process.env.DB_PASS ? '***' : 'undefined'); + console.log(' DB_NAME:', process.env.DB_NAME); + console.log(' DB_PORT:', process.env.DB_PORT); + console.log(' NODE_ENV:', process.env.NODE_ENV); + console.log(' PORT:', process.env.PORT); + if (!process.env.SECRET_KEY) { - console.warn('[env] SECRET_KEY nicht gesetzt in .env'); + console.warn('⚠️ [loadEnv] SECRET_KEY nicht gesetzt in .env'); + } else { + console.log('✅ [loadEnv] SECRET_KEY ist gesetzt'); } } +console.log('🔍 [loadEnv] Umgebungsvariablen-Loader abgeschlossen'); export {}; diff --git a/backend/server.js b/backend/server.js index ad13f37..36009d8 100644 --- a/backend/server.js +++ b/backend/server.js @@ -1,18 +1,45 @@ +console.log('🚀 [server] Starte YourPart Backend Server...'); +console.log('🔍 [server] Aktuelles Verzeichnis:', process.cwd()); +console.log('🔍 [server] Node.js Version:', process.version); +console.log('🔍 [server] Platform:', process.platform); + import './config/loadEnv.js'; // .env deterministisch laden +console.log('✅ [server] loadEnv.js geladen'); + import http from 'http'; import app from './app.js'; import { setupWebSocket } from './utils/socket.js'; import { syncDatabase } from './utils/syncDatabase.js'; +console.log('🔍 [server] Alle Module geladen'); + +// Prüfe Umgebungsvariablen nach loadEnv +console.log('🔍 [server] Umgebungsvariablen nach loadEnv:'); +console.log(' DB_HOST:', process.env.DB_HOST); +console.log(' DB_USER:', process.env.DB_USER); +console.log(' DB_PASS:', process.env.DB_PASS ? '***' : 'undefined'); +console.log(' DB_NAME:', process.env.DB_NAME); +console.log(' DB_PORT:', process.env.DB_PORT); +console.log(' NODE_ENV:', process.env.NODE_ENV); +console.log(' PORT:', process.env.PORT); + const server = http.createServer(app); +console.log('✅ [server] HTTP-Server erstellt'); setupWebSocket(server); +console.log('✅ [server] WebSocket-Setup abgeschlossen'); +console.log('🔍 [server] Starte Datenbank-Synchronisation...'); syncDatabase().then(() => { - server.listen(3001, () => { - console.log('Server is running on port 3001'); + console.log('✅ [server] Datenbank-Synchronisation erfolgreich'); + + const port = process.env.PORT || 3001; + server.listen(port, () => { + console.log('🚀 [server] Server läuft auf Port', port); + console.log('🌐 [server] Server bereit für Anfragen'); }); }).catch(err => { - console.error('Failed to sync database:', err); + console.error('❌ [server] Datenbank-Synchronisation fehlgeschlagen:', err); + console.error('❌ [server] Stack Trace:', err.stack); process.exit(1); });