Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Arbeiten mit dem Readline-Modul | Erstellung von Konsolenanwendungen mit Node.js
Backend-Entwicklung mit Node.js und Express.js

Arbeiten mit dem Readline-Modul

Swipe um das Menü anzuzeigen

Einstieg in Readline

Das Readline-Modul ist ein integriertes Modul in Node.js, das das Einlesen von Benutzereingaben auf interaktive Weise vereinfacht. Es wird häufig verwendet, um Eingabeaufforderungen zu erstellen, Benutzerantworten zu erfassen und interaktive Frage-Antwort-Sitzungen in der Befehlszeilenschnittstelle zu gestalten.

Grundlagen des Readline-Moduls

Bevor ein praxisnahes Beispiel betrachtet wird, werden die grundlegenden Konzepte und Methoden des Readline-Moduls erläutert.

Erstellen einer Readline-Schnittstelle

Um das Readline-Modul zu verwenden, wird in der Regel zunächst eine Readline-Schnittstelle erstellt, die die Ein- und Ausgabeströme verwaltet. So wird eine Schnittstelle erstellt:

const readline = require("readline");

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});
  • const rl steht für die Readline-Schnittstelle;
  • readline.createInterface({ input: process.stdin, output: process.stdout }) richtet die Schnittstelle so ein, dass sie von der Standardeingabe (process.stdin) liest und auf die Standardausgabe (process.stdout) schreibt.

Erfassen von Benutzereingaben

Sobald eine Readline-Schnittstelle vorhanden ist, kann sie zur Erfassung von Benutzereingaben verwendet werden. Die gebräuchlichste Methode hierfür ist rl.question():

rl.question("Please enter your name: ", (name) => {
  // User input is available as `name`
  console.log(`Hello, ${name}!`);
  rl.close();
});
  • rl.question("Please enter your name: ", (name) => { ... }) fordert den Benutzer mit der angegebenen Nachricht zur Eingabe auf;
  • Die Callback-Funktion (name) => { ... } wird ausgeführt, wenn der Benutzer seine Antwort eingibt;
  • name enthält die Eingabe des Benutzers.

Verwaltung der Schnittstelle

Es ist wichtig, die Readline-Schnittstelle zu schließen, wenn sie nicht mehr benötigt wird. Dies kann mit rl.close() erfolgen.

Erstellen einer interaktiven Eingabeaufforderung

Nachdem die Grundlagen behandelt wurden, folgt nun die praktische Anwendung: Entwicklung eines unterhaltsamen Kommandozeilen-Wahrsagers. Benutzer geben ihren Namen ein und die Anwendung generiert eine zufällige Glücksbotschaft.

Hier ist das Codebeispiel aus dem Video:

const readline = require("readline");

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});

const fortunes = [
  "You will find unexpected joy in the little things.",
  "A new opportunity will open doors for you.",
  "Adventure is just around the corner.",
  "Embrace change, and good things will follow.",
  "Patience will bring you great rewards.",
];

rl.question("Welcome to the Fortune Teller! What's your name? ", (name) => {
  const randomIndex = Math.floor(Math.random() * fortunes.length);
  const randomFortune = fortunes[randomIndex];

  console.log(`Hello, ${name}! Your fortune today: ${randomFortune}`);

  rl.close();
});

In diesem Beispiel wurden die oben genannten Konzepte angewendet, um eine interaktive Kommandozeilenanwendung zu erstellen. Benutzer werden zur Eingabe aufgefordert und die Anwendung generiert zufällige Antworten. Das Readline-Modul vereinfacht die Benutzerinteraktion in der Kommandozeilenschnittstelle und eignet sich ideal zur Erstellung interaktiver CLI-Anwendungen.

Codebeschreibung
expand arrow
  • Zeile 1: importiert das eingebaute readline-Modul;
  • Zeile 3-6: erstellt eine Instanz von readline.Interface mit dem Namen rl. Es verwendet die Streams process.stdin und process.stdout für Benutzereingaben und -ausgaben;
  • Zeile 8-14: erstellt ein Array mit dem Namen fortunes, das mehrere Glücksbotschaften enthält;
  • Zeile 16: verwendet rl.question(), um den Benutzer nach seinem Namen zu fragen. Die Callback-Funktion wird ausgeführt, nachdem der Benutzer eine Eingabe gemacht hat;
  • Zeile 17: generiert einen zufälligen Index mit Math.random() und Math.floor(), um eine Glücksbotschaft auszuwählen;
  • Zeile 18: ruft die Glücksbotschaft ab, die am generierten Index gespeichert ist;
  • Zeile 20: zeigt eine personalisierte Glücksbotschaft mit dem Namen des Benutzers und der ausgewählten Botschaft an;
  • Zeile 22: schließt die readline-Schnittstelle und beendet die Interaktion.

Zusammenfassung

Dieser Code erstellt eine einfache Kommandozeilenanwendung als Wahrsager mit dem readline-Modul. Der Name des Benutzers wird abgefragt, ein zufälliger Spruch aus einem Array ausgewählt, das Ergebnis angezeigt und die Anwendung geschlossen.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 7

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Abschnitt 2. Kapitel 7
some-alt