CodeBlanks Logo Icon CodeBlanks

Config hiyerarşisi

Config dosyası hiyerarşisini öğrenirsin.

Config hiyerarşisi

Büyük projelerde yapılandırma tek bir .env'de tutulmaz. Farklı ortamlar için ayrı dosyalar (.env.development, .env.production) ve varsayılan bir dosya (.env.defaults) kullanılır. Bu, config hiyerarşisi oluşturur.

Örnek: .env.defaults herkesin paylaştığı varsayılanları, .env.development geliştirme ortamına özel değerleri tutar. Yükleme sırası: önce varsayılanlar, sonra ortam dosyası. Böylece ortam dosyası varsayılanları geçersiz kılar. Kod, yapılandırmayı bir config nesnesinde toplar: const config = { port: process.env.PORT, db: process.env.DATABASE_URL };. Bu nesne uygulamanın her yerinde kullanılır. config nesnesi, yapılandırmayı tek bir yerden yönetmeyi sağlar.

config nesnesi

Yapılandırmayı tek bir config nesnesinde toplamak iyi bir uygulamadır. Bu nesne, uygulamanın her yerinde kullanılır; process.env'e doğrudan erişim yerine config.port yazılır.

Örnek: const config = { port: process.env.PORT || 3000, dbUrl: process.env.DATABASE_URL, nodeEnv: process.env.NODE_ENV };. Bu nesne, uygulamanın başında bir kez tanımlanır ve başka dosyalara dışa aktarılır. Avantajları: yapılandırma tek yerde, isimler tutarlı, testleri kolay. process.env'e doğrudan erişim her dosyada dağınık olur; config nesnesi bunu merkezileştirir. Üretimde config'i bir modül olarak dışa aktarıp her yerden içe aktarırsın.

Uygulama config nesnesi oluştur

dotenv'i etkinleştir. const config = { port: process.env.PORT || 3000, nodeEnv: process.env.NODE_ENV || "development" } ile config nesnesi oluştur. console.log ile config.port'u yazdır.

Başlangıç kodu

index.js
// dotenv etkinleştir
// buraya yaz

// config nesnesi oluştur
// buraya yaz

// port değerini yazdır
// buraya yaz

Örnek çözüm

index.js
require("dotenv").config();
const config = {
  port: process.env.PORT || 3000,
  nodeEnv: process.env.NODE_ENV || "development"
};
console.log(config.port);

Beklenen çıktı

3000

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Dosyayı rolüne eşle

Kavram Anlamı
.env.defaults Varsayılan değerler
.env.development Geliştirme ortamı
.env.production Üretim ortamı
config nesnesi Yapılandırmayı toplar

2 config nesnesi neden kullanılır?

index.js
const config = { port: process.env.PORT }
  • Daha renkli konsol için
  • Daha hızlı ağ için
  • Daha az bellek için
  • Yapılandırmayı tek yerde toplamak için Doğru cevap

Açıklama: config nesnesi yapılandırmayı merkezileştirir.

3 config nesnesi satırını tamamla

Soru
const config = { port: process.____.PORT || 3000 };
Cevap
const config = { port: process.env.PORT || 3000 };

Açıklama: process.env.PORT ile port alınır.

İleri seviye bölümündeki tüm dersler