Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Työskentely Readline-moduulin Kanssa | Konsolisovellusten Rakentaminen Node.js:llä
Backend-kehitys Node.js:llä ja Express.js:llä

Työskentely Readline-moduulin Kanssa

Pyyhkäise näyttääksesi valikon

Johdanto Readline-moduuliin

Readline-moduuli on Node.js:n sisäänrakennettu moduuli, joka helpottaa käyttäjän syötteen lukemista vuorovaikutteisesti. Sitä käytetään usein kehotteiden luomiseen, käyttäjän vastausten keräämiseen ja vuorovaikutteisten kysymys-vastaus -istuntojen rakentamiseen komentorivillä.

Readline-moduulin perusteet

Ennen kuin siirrytään käytännön esimerkkiin, tutustutaan Readline-moduulin keskeisiin käsitteisiin ja menetelmiin.

Readline-rajapinnan luominen

Readline-moduulin käyttö aloitetaan yleensä luomalla Readline-rajapinta, joka hallitsee syöte- ja tulostusvirtoja. Näin rajapinta luodaan:

const readline = require("readline");

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});
  • const rl edustaa Readline-rajapintaa;
  • readline.createInterface({ input: process.stdin, output: process.stdout }) määrittää rajapinnan lukemaan standardisyötteestä (process.stdin) ja kirjoittamaan standarditulosteeseen (process.stdout).

Käyttäjän syötteen kerääminen

Kun Readline-rajapinta on luotu, sitä voidaan käyttää käyttäjän syötteen keräämiseen. Yleisin menetelmä tähän tarkoitukseen on 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) => { ... }) pyytää käyttäjää syöttämään tietoa annetulla viestillä;
  • Paluufunktio (name) => { ... } suoritetaan, kun käyttäjä syöttää vastauksensa;
  • name sisältää käyttäjän syötteen.

Rajapinnan hallinta

On tärkeää sulkea Readline-rajapinta, kun sitä ei enää tarvita. Tämä voidaan tehdä komennolla rl.close().

Interaktiivisen kehotteen luominen

Nyt kun perusteet ovat hallussa, voidaan soveltaa opittua ja luoda hauska komentorivillä toimiva ennustaja. Käyttäjät syöttävät nimensä, ja sovellus arpoo satunnaisen ennustusviestin.

Tässä on videolla esitetty esimerkkikoodi:

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();
});

Tässä esimerkissä yllä olevia käsitteitä on sovellettu interaktiivisen komentorivisovelluksen luomiseen. Käyttäjältä pyydetään syöte, ja sovellus tuottaa satunnaisia vastauksia. Readline-moduuli helpottaa käyttäjän vuorovaikutusta komentorivillä, mikä tekee siitä ihanteellisen interaktiivisten CLI-sovellusten toteuttamiseen.

Koodin kuvaus
expand arrow
  • Rivi 1: tuo sisään sisäänrakennetun readline-moduulin;
  • Rivit 3-6: luo readline.Interface-olion nimeltä rl. Se käyttää process.stdin- ja process.stdout-virtoja käyttäjän syötteelle ja tulosteelle;
  • Rivit 8-14: luo taulukon nimeltä fortunes, joka sisältää useita ennustuksia;
  • Rivi 16: käyttää rl.question()-metodia kysyäkseen käyttäjän nimeä. Takaisinkutsufunktio suoritetaan, kun käyttäjä antaa syötteen;
  • Rivi 17: generoi satunnaisen indeksin käyttäen Math.random() ja Math.floor() valitakseen ennustuksen;
  • Rivi 18: hakee ennustuksen annetusta indeksistä;
  • Rivi 20: näyttää henkilökohtaisen ennustuksen, joka sisältää käyttäjän nimen ja valitun ennustuksen;
  • Rivi 22: sulkee readline-rajapinnan ja päättää vuorovaikutuksen.

Yhteenveto

Tämä koodi luo yksinkertaisen komentorivin ennustajasovelluksen käyttäen readline-moduulia. Se kerää käyttäjän nimen, valitsee satunnaisen ennustuksen taulukosta, näyttää tuloksen ja sulkee sovelluksen.

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 7

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 2. Luku 7
some-alt