Code
// Node.js ≥ 20.6: node --env-file=.env app.js (kein dotenv nötig)
const required = (key) => {
const val = process.env[key];
if (val === undefined || val === '') throw new Error(`Env-Variable fehlt: ${key}`);
return val;
};
const toInt = (key, fallback) => {
const n = Number.parseInt(process.env[key] ?? String(fallback), 10);
if (Number.isNaN(n)) throw new Error(`${key} ist keine Zahl`);
return n;
};
// Beim Start einmal prüfen, danach nur noch config nutzen
export const config = Object.freeze({
nodeEnv: process.env.NODE_ENV ?? 'development',
port: toInt('PORT', 3000),
dbUrl: required('DATABASE_URL'),
debug: process.env.DEBUG === 'true',
});
// Vite (Browser): nur Variablen mit VITE_-Präfix landen im Bundle!
// const apiUrl = import.meta.env.VITE_API_URL;
// if (import.meta.env.DEV) console.log('Dev-Modus');
Wenn DATABASE_URL fehlt: Error: Env-Variable fehlt: DATABASE_URL