Refactor dotenv configuration to load environment variables from multiple candidates; add error handling for missing DB_HOST
This commit is contained in:
27
src/index.js
27
src/index.js
@@ -1,4 +1,5 @@
|
|||||||
import dotenv from 'dotenv';
|
import dotenv from 'dotenv';
|
||||||
|
import fs from 'fs';
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
import { fileURLToPath } from 'url';
|
import { fileURLToPath } from 'url';
|
||||||
import express from 'express';
|
import express from 'express';
|
||||||
@@ -14,7 +15,31 @@ import pool from './db.js';
|
|||||||
import { setupWebSocket } from './ws.js';
|
import { setupWebSocket } from './ws.js';
|
||||||
|
|
||||||
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
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();
|
const app = express();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user