Variables d’environnement
Fait partie de la section Les bases de Node.js du Journey Node.js de Coddy. Leçon 6 sur 33.
Certains paramètres dépendent de la personne qui exécute un programme, et non des mots qu’elle saisit après celui-ci.
Les variables d’environnement sont des chaînes nommées que le shell transmet à chaque programme. Node les place dans process.env. Une variable non définie vaut undefined. a ?? b renvoie a, sauf si a vaut undefined ou null ; dans ce cas, il renvoie b. Ainsi, process.env.CITY ?? 'Lisbon' vaut 'Lisbon' lorsque CITY n’est pas définie.
// CITY=Oslo node weather.js
const city = process.env.CITY ?? 'Lisbon';
console.log(`Weather for ${city}`);Sur un ordinateur portable, tu peux définir une variable pour une seule exécution en l’écrivant avant la commande : CITY=Oslo node weather.js affiche Weather for Oslo, et node weather.js seul affiche Lisbon. Les noms distinguent les majuscules des minuscules. Le terminal à côté de ton code ne définit aucune variable ; il affiche donc toujours la valeur par défaut.
Défi
FacileVos notes doivent indiquer à qui elles appartiennent. Le nom provient d’une variable d’environnement, un paramètre nommé que le shell transmet au programme, et non des mots saisis après la commande.
- Dans
notes.js, dans la branchelist, lisez la variable d’environnementNOTES_OWNER. - Avant
No notes yet, affichez une ligne de titre :Notes forsuivie du nom du propriétaire. LorsqueNOTES_OWNERn’est pas définie, utilisez le motyouà la place d’un nom.
Avec NOTES_OWNER définie sur Ada, list affiche :
Notes for Ada
No notes yetSans NOTES_OWNER, la commande affiche :
Notes for you
No notes yetLes autres commandes ne changent pas.
Essayez : saisissez list dans la zone après $ node notes.js et appuyez sur Entrée. Vous voyez Notes for you, puis No notes yet. Le terminal ici ne peut pas définir de variables d’environnement, donc vous voyez toujours you. Lorsque vous appuyez sur « Vérifier », les tests exécutent également list avec NOTES_OWNER définie sur Ada puis sur Grace, et attendent Notes for Ada et Notes for Grace. Sur un ordinateur portable, vous pourriez essayer avec NOTES_OWNER=Ada node notes.js list.
Essayez vous-même
// Votre outil de prise de notes commence ici.
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);
}
Toutes les leçons de Les bases de Node.js
1Exécuter JavaScript avec Node
Bonjour, NodeLire la commandeArguments de ligne de commandeCommandes5Événements, entrées et packages
Écouter avant d’émettreÉmetteurs d’événementsLire les entréesEntraînez-vous par vous-même : Playground Express