Menu
CoddyTech

Zmienne środowiskowe

Część sekcji Podstawy Node.js ścieżki Node.js w Coddy. Lekcja 6 z 33.

Niektóre ustawienia dotyczą osoby uruchamiającej program, a nie słów wpisywanych po jego uruchomieniu.

Zmienne środowiskowe to nazwane ciągi znaków, które powłoka przekazuje każdemu programowi. Node umieszcza je w process.env. Niezdefiniowana zmienna ma wartość undefined. a ?? b zwraca a, chyba że a ma wartość undefined lub null; wtedy zwraca b. Dlatego process.env.CITY ?? 'Lisbon' ma wartość 'Lisbon', gdy CITY nie jest ustawione.

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

Na laptopie możesz ustawić zmienną na czas pojedynczego uruchomienia, wpisując ją przed poleceniem: CITY=Oslo node weather.js wyświetla Weather for Oslo, a samo node weather.js wyświetla Lisbon. Wielkość liter w nazwach ma znaczenie. Terminal obok kodu nie ustawia żadnych zmiennych, więc zawsze wyświetla wartość domyślną.

challenge icon

Wyzwanie

Łatwy

W notatkach powinna być podana osoba, do której należą. Imię pochodzi ze zmiennej środowiskowej — ustawienia przekazywanego programowi przez powłokę — a nie ze słów wpisanych po poleceniu.

  1. W pliku notes.js, w gałęzi list, odczytaj zmienną środowiskową NOTES_OWNER.
  2. Przed No notes yet wyświetl wiersz nagłówka: Notes for , a po nim imię właściciela. Jeśli NOTES_OWNER nie jest ustawiona, zamiast imienia użyj słowa you.

Gdy NOTES_OWNER ma wartość Ada, polecenie list wyświetla:

Notes for Ada
No notes yet

Gdy NOTES_OWNER nie jest ustawiona, wyświetla:

Notes for you
No notes yet

Pozostałe polecenia się nie zmieniają.

Wypróbuj: wpisz list w polu po $ node notes.js i naciśnij Enter. Zobaczysz Notes for you, a następnie No notes yet. Ten terminal nie może ustawiać zmiennych środowiskowych, więc zawsze zobaczysz you. Po naciśnięciu „Sprawdź” testy uruchamiają również polecenie list z ustawioną zmienną NOTES_OWNER na Ada i Grace i oczekują Notes for Ada oraz Notes for Grace. Na laptopie możesz to wypróbować, używając polecenia NOTES_OWNER=Ada node notes.js list.

Spróbuj swoich sił

// Twoje narzędzie do notatek zaczyna się tutaj.
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);
}

Wszystkie lekcje w sekcji Podstawy Node.js

Poćwicz samodzielnie: Edytor online Express