// Centralized environment loader import path from 'path'; import { fileURLToPath } from 'url'; 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.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, '(', typeof process.env.DB_HOST, ')'); console.log(' DB_USER:', process.env.DB_USER, '(', typeof process.env.DB_USER, ')'); console.log(' DB_PASS:', process.env.DB_PASS ? '***' : 'undefined', '(', typeof process.env.DB_PASS, ')'); console.log(' DB_NAME:', process.env.DB_NAME, '(', typeof process.env.DB_NAME, ')'); console.log(' DB_PORT:', process.env.DB_PORT, '(', typeof process.env.DB_PORT, ')'); console.log(' NODE_ENV:', process.env.NODE_ENV, '(', typeof process.env.NODE_ENV, ')'); console.log(' PORT:', process.env.PORT, '(', typeof process.env.PORT, ')'); // Spezielle Passwort-Prüfung if (process.env.DB_PASS) { console.log('🔍 [loadEnv] DB_PASS Details:'); console.log(' Länge:', process.env.DB_PASS.length); console.log(' Erste 3 Zeichen:', process.env.DB_PASS.substring(0, 3)); console.log(' Letzte 3 Zeichen:', process.env.DB_PASS.substring(process.env.DB_PASS.length - 3)); console.log(' Enthält Leerzeichen:', process.env.DB_PASS.includes(' ')); console.log(' Enthält Zeilenumbrüche:', process.env.DB_PASS.includes('\n')); console.log(' Enthält Tabs:', process.env.DB_PASS.includes('\t')); } if (!process.env.SECRET_KEY) { console.warn('⚠️ [loadEnv] SECRET_KEY nicht gesetzt in .env'); } else { console.log('✅ [loadEnv] SECRET_KEY ist gesetzt'); } } console.log('🔍 [loadEnv] Umgebungsvariablen-Loader abgeschlossen'); export {};