JavaScript Academy · Lektion

Miljøvariabler og konfigurationsmønstre

Konfigurér apps med små standardværdier, sikre env-opslag og eksplicitte objekter. Undgå at lække hemmeligheder i browseren. Begyndervenlige mønstre.

Lektion 3 af 38 trin

Miljøvariabler og konfigurationsmønstre er en gratis JavaScript Academy-lektion på CoddyKit. Dette er lektion 3 af 3. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i JavaScript Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. JavaScript Academy-kurset indeholder 3 lektioner i alt.

Overblik

Mål: Læs konfiguration sikkert i ethvert kørselsmiljø.

  • Standardværdier først
  • Lav et funktionstjek af miljøet (antag ikke process.env)
  • Fortolk tekststrenge som tal/boolsk værdi
  • Ingen hemmeligheder i browserpakker
Miljøvariabler og konfigurationsmønstre — illustration 1

Sikker læsning af miljø

Brug funktionstjek til kun at læse miljøet, når det findes. Sørg for et lille demonstrationslager til eksempler, der kan køres.

// Read an env var if available; otherwise use a fallback
function readEnv(name, fallback) {
  // detect Node-like env
  const hasProcessEnv = typeof process !== "undefined" && process && process.env && typeof process.env === "object";
  if (hasProcessEnv && typeof process.env[name] === "string") {
    return process.env[name];
  }
  // demo fallback store so this snippet runs everywhere
  const DEMO = { API_URL: "https://api.example.com", NODE_ENV: "development" };
  if (typeof DEMO[name] === "string") return DEMO[name];
  return fallback;
}

console.log("API_URL:", readEnv("API_URL", "https://fallback.local"));
Miljøvariabler og konfigurationsmønstre — illustration 2

Konfiguration fra standardværdier + miljø

Standardværdier først, og tilsidesæt derefter med værdier fra miljøet. Konvertér tekststrenge eksplicit til number/boolean.

// Build config from defaults, then override via env when present
function buildConfig() {
  const defaults = {
    apiUrl: "https://api.example.com",
    port: 3000,
    debug: false
  };

  // env values are strings; parse to right types
  const apiUrl = readEnv("API_URL", defaults.apiUrl);
  const portStr = readEnv("PORT", String(defaults.port));
  const debugStr = readEnv("DEBUG", defaults.debug ? "1" : "0");

  return {
    apiUrl: apiUrl,
    port: Number.parseInt(portStr, 10),
    debug: debugStr === "1" || debugStr === "true"
  };
}

const cfg = buildConfig();
console.log("config:", cfg);
Miljøvariabler og konfigurationsmønstre — illustration 3

Eksplicit konfigurationsparameter

Send et lille konfigurationsobjekt til funktioner. Det undgår global tilstand og overraskelser.

// Pass config into functions explicitly (easier to test)
function startApp(config) {
  // use values directly
  const mode = config.debug ? "debug" : "prod";
  return "Starting " + mode + " at " + config.apiUrl + " on :" + config.port;
}

console.log(startApp(cfg));
Miljøvariabler og konfigurationsmønstre — illustration 4

Fortolk miljøet sikkert

Miljøværdier er tekststrenge. Skriv små fortolkere til boolske værdier og heltal for at undgå fejl.

// Helpers to parse common env shapes safely
function toBool(s, fallback) {
  if (typeof s !== "string") return fallback;
  const v = s.trim().toLowerCase();
  if (v === "1" || v === "true" || v === "yes") return true;
  if (v === "0" || v === "false" || v === "no") return false;
  return fallback;
}

function toInt(s, fallback) {
  const n = Number.parseInt(s, 10);
  return Number.isFinite(n) ? n : fallback;
}

console.log("toBool:", toBool("yes", false), toBool("no", true));
console.log("toInt :", toInt("8080", 3000), toInt("oops", 3000));
Miljøvariabler og konfigurationsmønstre — illustration 5

Hemmeligheder og klientkode

Vigtigt:

  • Læg ikke hemmeligheder i JavaScript på klientsiden; brugerne kan læse dem.
  • Behold kun ufarlige flag og URL'er i browseren.
  • I Node skal du læse rigtige hemmeligheder fra process.env eller et hemmelighedslager.
  • Hav altid en standardkonfiguration til lokale kørsler.
Miljøvariabler og konfigurationsmønstre — illustration 6

Test i miljø og konfiguration

Hurtigt tjek: Portabelt konfigurationsmønster.

Miljøvariabler og konfigurationsmønstre — illustration 7

Opsamling

Opsamling: Opbyg konfiguration fra standardværdier og sikre miljølæsninger, fortolk tekststrenge, og send et eksplicit konfigurationsobjekt. Udsend aldrig hemmeligheder i klientkode.

Miljøvariabler og konfigurationsmønstre — illustration 8
Gratis at komme i gang

Lær JavaScript med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
59
Lektioner
200

Ofte stillede spørgsmål

Er lektionen “Miljøvariabler og konfigurationsmønstre” gratis?

Ja — alle 3 lektioner i læringssporet JavaScript Academy, inklusive “Miljøvariabler og konfigurationsmønstre”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. JavaScript Academy-kurset indeholder 3 lektioner i alt.

Hvad lærer jeg i “Miljøvariabler og konfigurationsmønstre”?

Konfigurér apps med små standardværdier, sikre env-opslag og eksplicitte objekter. Undgå at lække hemmeligheder i browseren. Begyndervenlige mønstre. Du øver dig i JavaScript Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på JavaScript Academy?

Der kræves ingen tidligere erfaring. JavaScript Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 3.

Hvor lang tid tager lektionen “Miljøvariabler og konfigurationsmønstre”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne JavaScript Academy-lektion?

Ja. Alle JavaScript Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Globals, tilgængelighed af fetch og fil-/netværks-API'er
  2. ESM-loaderens særheder og forskelle på paths og URLs
  3. Miljøvariabler og konfigurationsmønstre
← Tilbage til JavaScript Academy