Arbejde med Readline-Modulet
Stryg for at vise menuen
Kom godt i gang med Readline
Readline-modulet er et indbygget modul i Node.js, der forenkler læsning af input fra brugeren på en interaktiv måde. Det bruges ofte til at oprette prompts, indsamle brugerens svar og bygge interaktive spørgsmål-svar-sessioner i kommandolinjegrænsefladen.
Forståelse af Readline-modulet
Før vi dykker ned i et virkeligt eksempel, skal vi udforske de grundlæggende begreber og metoder, som Readline-modulet tilbyder.
Oprettelse af et Readline-interface
For at bruge Readline-modulet starter vi typisk med at oprette et Readline-interface, der håndterer input- og outputstrømme. Sådan opretter vi et interface:
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
const rlrepræsenterer Readline-interfacet;readline.createInterface({ input: process.stdin, output: process.stdout })opsætter interfacet til at læse fra standard input (process.stdin) og skrive til standard output (process.stdout).
Indsamling af brugerinput
Når vi har et Readline-interface, kan vi bruge det til at indsamle brugerinput. Den mest almindelige metode til dette formål er 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) => { ... })viser en besked til brugeren for at indsamle input;- Callback-funktionen
(name) => { ... }udføres, når brugeren indtaster deres svar; nameindeholder brugerens input.
Håndtering af interfacet
Det er vigtigt at lukke Readline-interfacet, når vi er færdige med at bruge det. Dette kan gøres med rl.close().
Oprettelse af en interaktiv prompt
Nu hvor vi har gennemgået det grundlæggende, kan vi bruge vores viden til at lave en sjov kommandolinje-spåmand. Brugerne indtaster deres navne, og applikationen genererer en tilfældig spådomsbesked.
Her er kodeeksemplet fra videoen:
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();
});
I dette eksempel har vi anvendt ovenstående koncepter til at skabe en interaktiv kommandolinjeapplikation. Brugeren bliver bedt om input, og applikationen genererer tilfældige svar. Readline-modulet forenkler brugerinteraktionen i kommandolinjegrænsefladen, hvilket gør det ideelt til at skabe interaktive CLI-applikationer.
- Linje 1: importerer det indbyggede
readline-modul; - Linje 3-6: opretter en
readline.Interface-instans med navnetrl. Den brugerprocess.stdinogprocess.stdoutstreams til brugerinput og output; - Linje 8-14: opretter et array med navnet
fortunes, der indeholder flere lykke-beskeder; - Linje 16: bruger
rl.question()til at bede brugeren om deres navn. Callback-funktionen udføres, når brugeren har indtastet et svar; - Linje 17: genererer et tilfældigt indeks ved hjælp af
Math.random()ogMath.floor()for at vælge en lykke-besked; - Linje 18: henter lykke-beskeden, der er gemt ved det genererede indeks;
- Linje 20: viser en personlig lykke-besked, der indeholder brugerens navn og den valgte besked;
- Linje 22: lukker
readline-interfacet og afslutter interaktionen.
Resumé
Denne kode opretter en simpel kommandolinjeapplikation til spådomme ved hjælp af readline-modulet. Den indsamler brugerens navn, vælger en tilfældig besked fra et array, viser resultatet og lukker applikationen.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat