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ą.
Wyzwanie
ŁatwyW 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.
- W pliku
notes.js, w gałęzilist, odczytaj zmienną środowiskowąNOTES_OWNER. - Przed
No notes yetwyświetl wiersz nagłówka:Notes for, a po nim imię właściciela. JeśliNOTES_OWNERnie jest ustawiona, zamiast imienia użyj słowayou.
Gdy NOTES_OWNER ma wartość Ada, polecenie list wyświetla:
Notes for Ada
No notes yetGdy NOTES_OWNER nie jest ustawiona, wyświetla:
Notes for you
No notes yetPozostał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
1Uruchamianie JavaScript w Node
Witaj, NodeOdczytywanie poleceniaArgumenty wiersza poleceńPolecenia5Zdarzenia, dane wejściowe i pakiety
Nasłuchuj przed emisjąEmitery zdarzeńOdczytywanie danych wejściowychPoćwicz samodzielnie: Edytor online Express