Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Utilizzo del Modulo Readline | Creazione di Applicazioni Console con Node.js
Sviluppo Backend con Node.js ed Express.js

Utilizzo del Modulo Readline

Scorri per mostrare il menu

Introduzione a Readline

Il modulo Readline è un modulo integrato in Node.js che semplifica la lettura dell'input da parte dell'utente in modo interattivo. Viene spesso utilizzato per creare prompt, raccogliere risposte dagli utenti e costruire sessioni interattive di domanda e risposta nell'interfaccia a riga di comando.

Comprendere il modulo Readline

Prima di passare a un esempio pratico, esploriamo i concetti fondamentali e i metodi forniti dal modulo Readline.

Creazione di un'interfaccia Readline

Per utilizzare il modulo Readline, di solito si inizia creando un'interfaccia Readline che gestisce i flussi di input e output. Ecco come si crea un'interfaccia:

const readline = require("readline");

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});
  • const rl rappresenta l'interfaccia Readline;
  • readline.createInterface({ input: process.stdin, output: process.stdout }) configura l'interfaccia per leggere dallo standard input (process.stdin) e scrivere sullo standard output (process.stdout).

Raccolta dell'input dell'utente

Una volta creata un'interfaccia Readline, è possibile utilizzarla per raccogliere l'input dell'utente. Il metodo più comune per questo scopo è 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) => { ... }) mostra all'utente il messaggio fornito per richiedere un input;
  • La funzione di callback (name) => { ... } viene eseguita quando l'utente inserisce la sua risposta;
  • name contiene l'input dell'utente.

Gestione dell'interfaccia

È importante chiudere l'interfaccia Readline quando non serve più. Questo può essere fatto utilizzando rl.close().

Creazione di un prompt interattivo

Dopo aver visto le basi, mettiamo in pratica quanto appreso creando un simpatico indovino da riga di comando. Gli utenti inseriscono il proprio nome e l'applicazione genera un messaggio di fortuna casuale.

Ecco l'esempio di codice mostrato nel 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 questo esempio, sono stati applicati i concetti precedenti per creare un'applicazione interattiva da riga di comando. Gli utenti vengono invitati a inserire un input e l'applicazione genera risposte casuali. Il modulo Readline semplifica l'interazione con l'utente nell'interfaccia a riga di comando, rendendolo ideale per la creazione di applicazioni CLI interattive.

Descrizione del codice
expand arrow
  • Riga 1: importa il modulo integrato readline;
  • Righe 3-6: crea un'istanza di readline.Interface chiamata rl. Utilizza gli stream process.stdin e process.stdout per l'input e l'output dell'utente;
  • Righe 8-14: crea un array chiamato fortunes che contiene diversi messaggi di fortuna;
  • Riga 16: utilizza rl.question() per chiedere all'utente il proprio nome. La funzione di callback viene eseguita dopo che l'utente ha fornito un input;
  • Riga 17: genera un indice casuale utilizzando Math.random() e Math.floor() per selezionare un messaggio di fortuna;
  • Riga 18: recupera il messaggio di fortuna memorizzato all'indice generato;
  • Riga 20: visualizza un messaggio di fortuna personalizzato contenente il nome dell'utente e la fortuna selezionata;
  • Riga 22: chiude l'interfaccia readline e termina l'interazione.

Riepilogo

Questo codice crea una semplice applicazione "fortune teller" da riga di comando utilizzando il modulo readline. Raccoglie il nome dell'utente, seleziona una fortuna casuale da un array, mostra il risultato e chiude l'applicazione.

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 7

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Sezione 2. Capitolo 7
some-alt