Omgevingsvariabelen en configuratiepatronen
Configureer apps met kleine standaardwaarden, veilige uitlezing van omgevingsvariabelen en expliciete objecten. Voorkom het lekken van geheimen in de browser. Patronen voor beginners
Omgevingsvariabelen en configuratiepatronen is een gratis JavaScript Academy-les op CoddyKit. Dit is les 3 van 3. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject JavaScript Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus JavaScript Academy bevat in totaal 3 lessen.
Overzicht
Doel: Configuratie veilig lezen in elke uitvoeringsomgeving.
- Standaardwaarden eerst
- Functiedetectie voor de omgeving (ga niet uit van process.env)
- Tekenreeksen parsen naar getallen/booleaanse waarden
- Geen geheimen in browserbundels

Omgevingsvariabelen veilig lezen
Gebruik functiedetectie om omgevingsvariabelen alleen te lezen als ze bestaan. Geef uitvoerbare voorbeelden een kleine demopslag.
// 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"));

Configuratie uit standaardwaarden + omgeving
Standaardwaarden eerst en daarna overschrijven vanuit de omgeving. Zet tekenreeksen expliciet om naar 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);

Expliciete configuratieparameter
Geef functies een klein configuratieobject. Zo vermijd je globale toestand en verrassingen.
// 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));

Omgeving veilig parsen
Waarden uit de omgeving zijn tekenreeksen. Schrijf kleine parsers voor booleaanse waarden en gehele getallen om fouten te voorkomen.
// 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));

Geheimen en clientcode
Belangrijk:
- Plaats geen geheimen in JavaScript aan de clientzijde; gebruikers kunnen ze lezen.
- Houd alleen onschadelijke vlaggen/URL's in de browser.
- Lees in Node echte geheimen uit process.env of een geheimenkluis.
- Houd altijd een standaardconfiguratie voor lokale uitvoeringen.

Kennistoets over de basis van omgeving en configuratie
Korte controle: draagbaar configuratiepatroon.

Samenvatting
Samenvatting: Bouw configuratie op uit standaardwaarden en veilige lezingen van de omgeving, parse tekenreeksen en geef een expliciet configuratieobject door. Neem nooit geheimen op in clientcode.

Leer JavaScript met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 59
- Lessen
- 200
Veelgestelde vragen
Is de les “Omgevingsvariabelen en configuratiepatronen” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad JavaScript Academy, waaronder “Omgevingsvariabelen en configuratiepatronen”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus JavaScript Academy bevat in totaal 3 lessen.
Wat leer ik in “Omgevingsvariabelen en configuratiepatronen”?
Configureer apps met kleine standaardwaarden, veilige uitlezing van omgevingsvariabelen en expliciete objecten. Voorkom het lekken van geheimen in de browser. Patronen voor beginners Je oefent met JavaScript Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met JavaScript Academy te beginnen?
Ervaring vooraf is niet nodig. JavaScript Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 3.
Hoe lang duurt de les “Omgevingsvariabelen en configuratiepatronen”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over JavaScript Academy?
Ja. Elke les over JavaScript Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Globals, beschikbaarheid van fetch en bestands-/netwerk-API's
- Eigenaardigheden van de ESM-loader, verschillen tussen paden en URL's
- Omgevingsvariabelen en configuratiepatronen