Umgebungsvariablen
Teil des Abschnitts Node.js-Grundlagen der Node.js-Journey von Coddy. Lektion 6 von 33.
Manche Einstellungen gehören zu der Person, die ein Programm ausführt, nicht zu den Wörtern, die sie danach eingibt.
Umgebungsvariablen sind benannte Zeichenketten, die die Shell jedem Programm übergibt. Node legt sie in process.env ab. Eine nicht gesetzte Variable ist undefined. a ?? b ergibt a, es sei denn, a ist undefined oder null; dann ergibt es b. Deshalb ist process.env.CITY ?? 'Lisbon' gleich 'Lisbon', wenn CITY nicht gesetzt ist.
// CITY=Oslo node weather.js
const city = process.env.CITY ?? 'Lisbon';
console.log(`Weather for ${city}`);Auf einem Laptop setzt du eine Variable für einen einzelnen Durchlauf, indem du sie vor den Befehl schreibst: CITY=Oslo node weather.js gibt Weather for Oslo aus, und node weather.js ohne weitere Angaben gibt Lisbon aus. Bei Namen wird zwischen Groß- und Kleinschreibung unterschieden. Das Terminal neben deinem Code setzt keine Variablen, deshalb zeigt es immer den Standardwert an.
Aufgabe
EinfachDeine Notizen sollten den Namen der Person enthalten, der sie gehören. Der Name stammt aus einer Umgebungsvariable, einer benannten Einstellung, die die Shell an das Programm übergibt, und nicht aus den Wörtern, die nach dem Befehl eingegeben werden.
- Lies im Zweig
listinnotes.jsdie UmgebungsvariableNOTES_OWNERaus. - Gib vor
No notes yeteine Kopfzeile aus:Notes for, gefolgt vom Namen des Besitzers. WennNOTES_OWNERnicht gesetzt ist, verwende statt eines Namens das Wortyou.
Wenn NOTES_OWNER auf Ada gesetzt ist, gibt list Folgendes aus:
Notes for Ada
No notes yetWenn NOTES_OWNER nicht gesetzt ist, wird Folgendes ausgegeben:
Notes for you
No notes yetDie anderen Befehle bleiben unverändert.
Probiere es aus: Gib list in das Feld nach $ node notes.js ein und drücke die Eingabetaste. Du siehst Notes for you und dann No notes yet. Das Terminal hier kann keine Umgebungsvariablen setzen, daher siehst du immer you. Wenn du auf „Prüfen“ klickst, wird bei den Prüfungen auch list mit NOTES_OWNER, das auf Ada und Grace gesetzt ist, ausgeführt. Erwartet werden dabei Notes for Ada und Notes for Grace. Auf einem Laptop würdest du es mit NOTES_OWNER=Ada node notes.js list ausprobieren.
Probier es selbst
// Dein Notizentool beginnt hier.
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);
}
Alle Lektionen in Node.js-Grundlagen
1JavaScript mit Node ausführen
Hallo, NodeDen Befehl lesenKommandozeilenargumenteBefehleÜbe selbstständig: Express-Playground