From 927a1b75c67cfb007c6ce20c8c965a1e0191c773 Mon Sep 17 00:00:00 2001 From: b3ni15 Date: Sun, 21 Dec 2025 00:04:02 +0100 Subject: [PATCH] Refactor dotenv configuration to load environment variables from multiple candidates; add error handling for missing DB_HOST --- src/index.js | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/index.js b/src/index.js index 4cc1274..ca0929e 100644 --- a/src/index.js +++ b/src/index.js @@ -1,4 +1,5 @@ import dotenv from 'dotenv'; +import fs from 'fs'; import path from 'path'; import { fileURLToPath } from 'url'; import express from 'express'; @@ -14,7 +15,31 @@ import pool from './db.js'; import { setupWebSocket } from './ws.js'; const __dirname = path.dirname(fileURLToPath(import.meta.url)); -dotenv.config({ path: path.join(__dirname, '..', '.env') }); +const envCandidates = [ + path.join(process.cwd(), '.env'), + path.join(__dirname, '..', '.env'), + path.join(__dirname, '..', '..', '.env') +]; + +let envLoaded = false; +for (const candidate of envCandidates) { + if (fs.existsSync(candidate)) { + dotenv.config({ path: candidate }); + envLoaded = true; + break; + } +} + +if (!envLoaded) { + // eslint-disable-next-line no-console + console.warn('Figyelem: .env fajl nem talalhato, ENV valtozok nelkul indul.'); +} + +if (!process.env.DB_HOST) { + // eslint-disable-next-line no-console + console.error('Hiba: DB_HOST nincs beallitva. Ellenorizd az .env fajlt vagy az ENV valtozokat.'); + process.exit(1); +} const app = express();