JavaScript Academy · Lektion

Miljövariabler och konfigurationsmönster

Konfigurera appar med små standardvärden, säkra läsningar av miljövariabler och explicita objekt. Undvik att läcka hemligheter i webbläsaren. Nybörjarvänliga mönster.

Lektion 3 av 38 steg

Miljövariabler och konfigurationsmönster är en gratis lektion i JavaScript Academy på CoddyKit. Detta är lektion 3 av 3. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för JavaScript Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i JavaScript Academy innehåller totalt 3 lektioner.

Överblick

Mål: Läsa konfiguration säkert i alla körningsmiljöer.

  • Standardvärden först
  • Kontrollera funktioner i env, anta inte att process.env finns
  • Tolka strängar som tal eller booleska värden
  • Inga hemligheter i webbläsarpaket
Miljövariabler och konfigurationsmönster — illustration 1

Säker läsning av env

Använd funktionsdetektering för att läsa env endast när den finns. Tillhandahåll en liten demonstrationslagring för körbara exempel.

// 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 och konfigurationsmönster — illustration 2

Konfiguration från standardvärden + env

Standardvärden först, och skriv sedan över dem med env. Konvertera strängar till number/boolean uttryckligen.

// 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 och konfigurationsmönster — illustration 3

Explicit konfigurationsparameter

Skicka ett litet konfigurationsobjekt till funktioner. Det undviker globalt tillstånd och överraskningar.

// 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 och konfigurationsmönster — illustration 4

Tolka env säkert

Värden i env är strängar. Skriv små parsers för booleska värden och heltal för att undvika buggar.

// 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 och konfigurationsmönster — illustration 5

Hemligheter och klientkod

Viktigt:

  • Lägg inte hemligheter i klientkod i JavaScript. Användare kan läsa dem.
  • Behåll endast ofarliga flaggor och URL:er i webbläsaren.
  • I Node läser du riktiga hemligheter från process.env eller ett valv.
  • Ha alltid en standardkonfiguration för lokala körningar.
Miljövariabler och konfigurationsmönster — illustration 6

Quiz: grunderna i env och konfiguration

Snabb kontroll: Ett portabelt konfigurationsmönster.

Miljövariabler och konfigurationsmönster — illustration 7

Sammanfattning

Sammanfattning: Bygg konfiguration från standardvärden och säkra läsningar av env, tolka strängar och skicka ett explicit konfigurationsobjekt. Skicka aldrig hemligheter i klientkod.

Miljövariabler och konfigurationsmönster — illustration 8
Gratis att börja

Lär dig JavaScript med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
59
Lektioner
200

Vanliga frågor

Är lektionen ”Miljövariabler och konfigurationsmönster” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen JavaScript Academy, inklusive ”Miljövariabler och konfigurationsmönster”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i JavaScript Academy innehåller totalt 3 lektioner.

Vad lär jag mig i ”Miljövariabler och konfigurationsmönster”?

Konfigurera appar med små standardvärden, säkra läsningar av miljövariabler och explicita objekt. Undvik att läcka hemligheter i webbläsaren. Nybörjarvänliga mönster. Ni övar på JavaScript Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig JavaScript Academy?

Du behöver inga förkunskaper. Utbildningen i JavaScript Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 3.

Hur lång tid tar lektionen ”Miljövariabler och konfigurationsmönster”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här JavaScript Academy-lektionen?

Ja. Varje JavaScript Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Globala objekt, tillgänglighet för fetch, fil- och nätverks-API:er
  2. ESM-laddarens egenheter och skillnader mellan sökvägar och URL:er
  3. Miljövariabler och konfigurationsmönster
← Tillbaka till JavaScript Academy