feat(backend): Verbesserung der Server- und Umgebungsvariablen-Logik
- 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.
This commit is contained in:
@@ -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 {};
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user