Menu
CoddyTech

Ortam Değişkenleri

Coddy'nin Node.js Journey'sinin Node.js Temelleri bölümünün bir parçası. Ders 6 / 33.

Bazı ayarlar, bir programı çalıştıran kişiye aittir; programdan sonra yazdıkları sözcüklere değil.

Ortam değişkenleri, kabuğun her programa verdiği adlandırılmış dizelerdir. Node bunları process.env içine koyar. Ayarlanmamış bir değişken undefined olur. a ?? b, a değerini verir; ancak a undefined veya null ise b değerini verir. Bu nedenle process.env.CITY ?? 'Lisbon', CITY ayarlanmadığında 'Lisbon' olur.

// CITY=Oslo node weather.js
const city = process.env.CITY ?? 'Lisbon';
console.log(`Weather for ${city}`);

Dizüstü bilgisayarda, tek bir çalıştırma için bir değişkeni komuttan önce yazarak ayarlarsın: CITY=Oslo node weather.js, Weather for Oslo çıktısını verir; yalnızca node weather.js ise Lisbon çıktısını verir. Adlar büyük/küçük harfe duyarlıdır. Kodunun yanındaki terminal hiçbir değişken ayarlamaz, bu nedenle her zaman varsayılanı gösterir.

challenge icon

Görev

Kolay

Notların kime ait olduğunu belirtmesi gerekir. İsim, komuttan sonra yazılan sözcüklerden değil, kabuğun programa aktardığı adlandırılmış bir ayar olan ortam değişkeninden gelir.

  1. notes.js dosyasında, list dalında, NOTES_OWNER ortam değişkenini oku.
  2. No notes yet ifadesinden önce, başlık satırı yazdır: Notes for ve ardından sahibinin adını yazdır. NOTES_OWNER ayarlanmamışsa, ad yerine you sözcüğünü kullan.

NOTES_OWNER değeri Ada olarak ayarlandığında, list şunu yazdırır:

Notes for Ada
No notes yet

NOTES_OWNER ayarlanmamışsa, şunu yazdırır:

Notes for you
No notes yet

Diğer komutlar değişmez.

Deneyin: $ node notes.js ifadesinden sonraki kutuya list yazıp Enter'a basın. Önce Notes for you, ardından No notes yet görürsünüz. Buradaki terminal ortam değişkenlerini ayarlayamadığından, her zaman you görürsünüz. “Kontrol et” düğmesine bastığınızda, kontroller ayrıca NOTES_OWNER değeri Ada ve Grace olarak ayarlanmış şekilde list komutunu çalıştırır ve Notes for Ada ile Notes for Grace çıktısını bekler. Bir dizüstü bilgisayarda NOTES_OWNER=Ada node notes.js list komutuyla deneyebilirsiniz.

Kendin dene

// Not alma aracın burada başlıyor.
const [command, ...words] = process.argv.slice(2);
const text = words.join(' ');

if (command === 'add') {
    console.log(`Adding: ${text}`);
} else if (command === 'list') {
    console.log('No notes yet');
} else {
    if (command) {
        console.error(`Unknown command: ${command}`);
    }
    console.error('Usage: node notes.js <command> [words]');
    process.exit(1);
}

Node.js Temelleri bölümündeki tüm dersler

Kendi başına pratik yap: Express playground