Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Att Arbeta med Readline-Modulen | Bygga Konsolapplikationer med Node.js
Backendutveckling med Node.js och Express.js

Att Arbeta med Readline-Modulen

Svep för att visa menyn

Komma igång med Readline

Readline-modulen är en inbyggd modul i Node.js som förenklar inläsning av användarinmatning på ett interaktivt sätt. Den används ofta för att skapa promptar, samla in användarsvar och bygga interaktiva fråge- och svarsessioner i kommandoradsgränssnittet.

Förstå Readline-modulen

Innan vi går in på ett verkligt exempel, låt oss utforska de grundläggande koncepten och metoderna som tillhandahålls av Readline-modulen.

Skapa ett Readline-gränssnitt

För att använda Readline-modulen börjar vi vanligtvis med att skapa ett Readline-gränssnitt som hanterar in- och utmatningsströmmar. Så här skapar vi ett gränssnitt:

const readline = require("readline");

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});
  • const rl representerar Readline-gränssnittet;
  • readline.createInterface({ input: process.stdin, output: process.stdout }) ställer in gränssnittet för att läsa från standardinmatning (process.stdin) och skriva till standardutmatning (process.stdout).

Samla in användarinmatning

När vi har ett Readline-gränssnitt kan vi använda det för att samla in användarinmatning. Den vanligaste metoden för detta är 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) => { ... }) visar ett meddelande till användaren för att begära inmatning;
  • Callback-funktionen (name) => { ... } körs när användaren har matat in sitt svar;
  • name innehåller användarens inmatning.

Hantera gränssnittet

Det är viktigt att stänga Readline-gränssnittet när vi är klara med det. Detta görs med rl.close().

Skapa en interaktiv prompt

Nu när vi har gått igenom grunderna kan vi använda våra kunskaper för att skapa en rolig kommandoradsbaserad spådomsapplikation. Användare matar in sina namn och applikationen genererar ett slumpmässigt spådomsmeddelande.

Här är kodexemplet från videon:

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 det här exemplet har vi tillämpat ovanstående koncept för att skapa en interaktiv kommandoradsapplikation. Användare uppmanas att ange indata, och applikationen genererar slumpmässiga svar. Readline-modulen förenklar användarinteraktionen i kommandoradsgränssnittet, vilket gör den idealisk för att skapa interaktiva CLI-applikationer.

Kodbeskrivning
expand arrow
  • Rad 1: importerar den inbyggda readline-modulen;
  • Rad 3-6: skapar en instans av readline.Interface med namnet rl. Den använder strömmarna process.stdin och process.stdout för användarens in- och utdata;
  • Rad 8-14: skapar en array med namnet fortunes som innehåller flera lyckomeddelanden;
  • Rad 16: använder rl.question() för att fråga användaren efter deras namn. Callback-funktionen körs efter att användaren har angett ett svar;
  • Rad 17: genererar ett slumpmässigt index med hjälp av Math.random() och Math.floor() för att välja ett lyckomeddelande;
  • Rad 18: hämtar lyckomeddelandet som finns på det genererade indexet;
  • Rad 20: visar ett personligt lyckomeddelande som innehåller användarens namn och det valda meddelandet;
  • Rad 22: stänger readline-gränssnittet och avslutar interaktionen.

Sammanfattning

Den här koden skapar en enkel kommandoradsapplikation för lyckomeddelanden med hjälp av readline-modulen. Den samlar in användarens namn, väljer ett slumpmässigt lyckomeddelande från en array, visar resultatet och stänger applikationen.

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 7

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Avsnitt 2. Kapitel 7
some-alt