Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Utilisation du module Readline | Création d'Applications Console avec Node.js
Développement Backend avec Node.js et Express.js

Utilisation du module Readline

Glissez pour afficher le menu

Premiers pas avec Readline

Le module Readline est un module intégré de Node.js qui simplifie la lecture des entrées utilisateur de manière interactive. Il est souvent utilisé pour créer des invites, recueillir des réponses utilisateur et construire des sessions interactives de questions-réponses dans l'interface en ligne de commande.

Comprendre le module Readline

Avant d'aborder un exemple concret, examinons les concepts de base et les méthodes fournies par le module Readline.

Création d'une interface Readline

Pour utiliser le module Readline, on commence généralement par créer une interface Readline qui gère les flux d'entrée et de sortie. Voici comment créer une interface :

const readline = require("readline");

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});
  • const rl représente l'interface Readline ;
  • readline.createInterface({ input: process.stdin, output: process.stdout }) configure l'interface pour lire depuis l'entrée standard (process.stdin) et écrire vers la sortie standard (process.stdout).

Collecte de l'entrée utilisateur

Une fois que nous disposons d'une interface Readline, nous pouvons l'utiliser pour recueillir l'entrée de l'utilisateur. La méthode la plus courante à cet effet est 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) => { ... }) invite l'utilisateur à saisir une entrée avec le message fourni ;
  • La fonction de rappel (name) => { ... } est exécutée lorsque l'utilisateur saisit sa réponse ;
  • name contient la saisie de l'utilisateur.

Gestion de l'interface

Il est important de fermer l'interface Readline lorsque nous avons terminé de l'utiliser. Nous pouvons le faire en utilisant rl.close().

Création d'une invite interactive

Maintenant que nous avons couvert les bases, mettons nos connaissances en pratique et créons une application de diseur de bonne aventure en ligne de commande. Les utilisateurs saisiront leur nom et l'application générera un message de fortune aléatoire.

Voici l'exemple de code présenté dans la vidéo :

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

Dans cet exemple, les concepts précédemment abordés sont appliqués pour créer une application interactive en ligne de commande. L'utilisateur est invité à saisir une information, et l'application génère des réponses aléatoires. Le module Readline simplifie l'interaction avec l'utilisateur dans l'interface en ligne de commande, ce qui le rend idéal pour la création d'applications CLI interactives.

Description du code
expand arrow
  • Ligne 1 : importe le module natif readline ;
  • Lignes 3-6 : crée une instance de readline.Interface nommée rl. Elle utilise les flux process.stdin et process.stdout pour la saisie et l'affichage utilisateur ;
  • Lignes 8-14 : crée un tableau nommé fortunes contenant plusieurs messages de prédiction ;
  • Ligne 16 : utilise rl.question() pour demander le nom de l'utilisateur. La fonction de rappel s'exécute après la saisie de l'utilisateur ;
  • Ligne 17 : génère un indice aléatoire à l'aide de Math.random() et Math.floor() pour sélectionner un message de prédiction ;
  • Ligne 18 : récupère le message de prédiction stocké à l'indice généré ;
  • Ligne 20 : affiche un message de prédiction personnalisé contenant le nom de l'utilisateur et la prédiction sélectionnée ;
  • Ligne 22 : ferme l'interface readline et termine l'interaction.

Résumé

Ce code crée une application simple de diseur de bonne aventure en ligne de commande à l'aide du module readline. Il recueille le nom de l'utilisateur, sélectionne une prédiction aléatoire dans un tableau, affiche le résultat, puis ferme l'application.

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 7

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Section 2. Chapitre 7
some-alt