Menu
CoddyTech

Variabili d’ambiente

Fa parte della sezione Fondamenti di Node.js del percorso Node.js di Coddy. Lezione 6 di 33.

Alcune impostazioni appartengono alla persona che esegue un programma, non alle parole che digita dopo di esso.

Le variabili d'ambiente sono stringhe denominate che la shell passa a ogni programma. Node le inserisce in process.env. Una variabile non impostata è undefined. a ?? b restituisce a, a meno che a non sia undefined o null; in quel caso restituisce b. Quindi process.env.CITY ?? 'Lisbon' è 'Lisbon' quando CITY non è impostata.

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

Su un portatile, puoi impostarne una per una singola esecuzione scrivendola prima del comando: CITY=Oslo node weather.js stampa Weather for Oslo, mentre node weather.js senza argomenti stampa Lisbon. I nomi distinguono tra maiuscole e minuscole. Il terminale accanto al tuo codice non imposta variabili, quindi mostra sempre il valore predefinito.

challenge icon

Sfida

Facile

Le tue note dovrebbero indicare a chi appartengono. Il nome proviene da una variabile d'ambiente, un'impostazione con nome che la shell passa al programma, non dalle parole digitate dopo il comando.

  1. In notes.js, nel ramo list, leggi la variabile d'ambiente NOTES_OWNER.
  2. Prima di No notes yet, stampa una riga di intestazione: Notes for seguita dal nome del proprietario. Quando NOTES_OWNER non è impostata, usa la parola you invece di un nome.

Con NOTES_OWNER impostata su Ada, list stampa:

Notes for Ada
No notes yet

Senza NOTES_OWNER, stampa:

Notes for you
No notes yet

Gli altri comandi non cambiano.

Prova: digita list nel riquadro dopo $ node notes.js e premi Invio. Vedrai Notes for you, poi No notes yet. Il terminale qui non può impostare variabili d'ambiente, quindi vedrai sempre you. Quando premi «Verifica», i controlli eseguono anche list con NOTES_OWNER impostata su Ada e su Grace e si aspettano Notes for Ada e Notes for Grace. Su un portatile, proveresti con NOTES_OWNER=Ada node notes.js list.

Provalo tu

// Il tuo strumento per gli appunti inizia qui.
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);
}

Tutte le lezioni di Fondamenti di Node.js

Esercitati da solo: Playground Express