Ortam Değişkenleri ve Yapılandırma Kalıpları
Uygulamaları küçük varsayılanlar, güvenli ortam değişkeni okumaları ve açık nesnelerle yapılandırın. Gizli bilgileri tarayıcıda açığa çıkarmaktan kaçının. Başlangıç dostu kalıplar.
Ortam Değişkenleri ve Yapılandırma Kalıpları, CoddyKit'te ücretsiz bir JavaScript Academy dersidir. Bu, 3 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, JavaScript Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. JavaScript Academy kursu toplamda 3 dersten oluşur.
Genel bakış
Amaç: Her çalışma ortamında yapılandırmayı güvenli biçimde okuyun.
- Önce varsayılanlar
- Ortamı özellik algılamayla denetleyin (process.env olduğunu varsaymayın)
- Metinleri sayılara/mantıksal değerlere ayrıştırın
- Tarayıcı paketlerinde gizli bilgi bulunmasın

Güvenli ortam okuma
Ortamı yalnızca mevcut olduğunda okumak için özellik algılama kullanın. Çalıştırılabilir örnekler için küçük bir örnek veri deposu sağlayın.
// 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"));

Varsayılanlar + ortamdan yapılandırma
Önce varsayılanlar, ardından ortamdan gelen değerlerle geçersiz kılın. Metinleri açıkça number/boolean türlerine dönüştürün.
// 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);

Açık yapılandırma parametresi
İşlevlere küçük bir yapılandırma nesnesi geçirin. Bu, genel durumu ve beklenmedik sonuçları önler.
// 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));

Ortamı güvenli biçimde ayrıştırma
Ortam değerleri metinlerdir. Hataları önlemek için mantıksal değerler ve tam sayılar için küçük ayrıştırıcılar yazın.
// 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));

Gizli bilgiler ve istemci kodu
Önemli:
- Gizli bilgileri istemci tarafı JS'ye koymayın; kullanıcılar bunları okuyabilir.
- Tarayıcıda yalnızca zararsız işaretleri/URL'leri tutun.
- Node'da gerçek gizli bilgileri process.env'den veya bir gizli bilgi kasasından okuyun.
- Yerel çalıştırmalar için her zaman bir varsayılan yapılandırma bulundurun.

Ortam/yapılandırma temelleri sınavı
Hızlı kontrol: Taşınabilir yapılandırma deseni.

Özet
Özet: Yapılandırmayı defaults + güvenli ortam okumalarıyla oluşturun, metinleri parse edin ve açık bir yapılandırma nesnesi geçirin. İstemci kodunda hiçbir zaman gizli bilgi göndermeyin.

Sıkça Sorulan Sorular
“Ortam Değişkenleri ve Yapılandırma Kalıpları” dersi ücretsiz mi?
Evet — “Ortam Değişkenleri ve Yapılandırma Kalıpları” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve JavaScript Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. JavaScript Academy kursu toplamda 3 dersten oluşur.
“Ortam Değişkenleri ve Yapılandırma Kalıpları” dersinde ne öğreneceğim?
Uygulamaları küçük varsayılanlar, güvenli ortam değişkeni okumaları ve açık nesnelerle yapılandırın. Gizli bilgileri tarayıcıda açığa çıkarmaktan kaçının. Başlangıç dostu kalıplar. JavaScript Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
JavaScript Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te JavaScript Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 3 dersinin 3. dersidir.
“Ortam Değişkenleri ve Yapılandırma Kalıpları” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu JavaScript Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her JavaScript Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Global'ler, fetch Kullanılabilirliği, Dosya/Ağ API'leri
- ESM Yükleyici Tuhaflıkları, Yol/URL Farkları
- Ortam Değişkenleri ve Yapılandırma Kalıpları