Befehle
Teil des Abschnitts Node.js-Grundlagen der Node.js-Journey von Coddy. Lektion 4 von 33.
Das Tool erledigt mehrere Dinge, und das erste Wort gibt an, welches davon.
Beim Destrukturieren wird das erste Wort entnommen und der Rest in einem Array gesammelt:
// node calc.js double 4
const [action, ...rest] = process.argv.slice(2);
if (action === 'double') {
console.log(Number(rest[0]) * 2);
}action ist das erste Wort und rest enthält alle Wörter danach. rest.join(' ') fügt diese Wörter wieder zu einer Zeichenkette zusammen. Eine Kette aus if und else if wählt aus, was zu tun ist. Ein abschließendes else fängt alle Wörter ab, mit denen du nicht gerechnet hast, einschließlich eines Tippfehlers.
Aufgabe
EinfachDein Tool wird mehrere Aufgaben erledigen, und das erste Wort nach node notes.js gibt an, welche. Jetzt lernt es zwei Befehle, add und list, sowie eine Antwort für jedes Wort, das es nicht kennt.
- Ersetze in
notes.jsbeide Startzeilen. Teile die Wörter nachnode notes.jsin den Befehl, also das erste Wort, und den Rest, also alle übrigen Wörter, auf. - Lege mit einer
if-,else if-,else-Kette fest, was mit dem Befehl geschehen soll. Jeder Befehl gibt genau eine Zeile aus:addgibtAdding:aus, gefolgt vom Rest der Wörter, die mit Leerzeichen verbunden werden.node notes.js add Buy milkgibtAdding: Buy milkaus.listgibtNo notes yetaus. Notizen werden noch nirgendwo gespeichert; das kommt in Kapitel 3.- Bei jedem anderen ersten Wort wird
Unknown command:ausgegeben, gefolgt nur von diesem ersten Wort.node notes.js remove 3gibtUnknown command: removeaus, ohne die3.
- Es darf nichts anderes ausgegeben werden. Wenn die Zeile aus der letzten Lektion, die
Adding:ausgibt, außerhalb der Kette bleibt, wird sie bei jedem Befehl ausgeführt,listgibt zwei Zeilen aus und die Prüfungen schlagen fehl.
Alle drei Fälle enden normal mit dem Exit-Code 0. In der nächsten Lektion werden unbekannte Befehle zu Fehlern.
Probier es aus: Gib jeden dieser Befehle in das Feld nach $ node notes.js ein und drücke die Eingabetaste.
add Buy milkzeigtAdding: Buy milkan.listzeigtNo notes yetan.remove 3zeigtUnknown command: removean.Listmit großem L zeigtUnknown command: Listan. JavaScript vergleicht Text Buchstabe für Buchstabe, einschließlich Großbuchstaben. Daher istListnichtlist.
Probier es selbst
// Dein Notizentool beginnt hier.
const args = process.argv.slice(2);
console.log(`Adding: ${args.slice(1).join(' ')}`);
Alle Lektionen in Node.js-Grundlagen
Übe selbstständig: Express-Playground