Start · Sprachen · JavaScript · Snippets · Env-Variablen (Node.js / Vite)

Env-Variablen (Node.js / Vite)

Umgebung & Konfig

Lädt Env-Variablen typsicher und prüft sie beim Start: Pflichtwerte, Zahlen, Booleans. Fehlt eine Variable, bricht die App sofort ab. Dazu der Zugriff in Vite über import.meta.env.

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