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 rlrappresenta 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; namecontiene 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.
- Riga 1: importa il modulo integrato
readline; - Righe 3-6: crea un'istanza di
readline.Interfacechiamatarl. Utilizza gli streamprocess.stdineprocess.stdoutper l'input e l'output dell'utente; - Righe 8-14: crea un array chiamato
fortunesche 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()eMath.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
readlinee 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.
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione