Acepte la entrada de la línea de comando en el nodo

Cómo hacer que un programa CLI de Node.js sea interactivo usando el módulo de nodo readline incorporado

¿Cómo hacer que un programa CLI de Node.js sea interactivo?

Nodo desde la versión 7 proporciona elreadlinemódulopara realizar exactamente esto: obtenga información de una secuencia legible como laprocess.stdinstream, que durante la ejecución de un programa Node es la entrada del terminal, una línea a la vez.

const readline = require('readline').createInterface({
  input: process.stdin,
  output: process.stdout
})

readline.question(What's your name?, (name) => { console.log(Hi </span><span style="color:#e6db74">${</span><span style="color:#a6e22e">name</span><span style="color:#e6db74">}</span><span style="color:#e6db74">!) readline.close() })

Este fragmento de código pide el nombre de usuario, y una vez que se ingresa el texto y el usuario presiona Enter, enviamos un saludo.

losquestion()El método muestra el primer parámetro (una pregunta) y espera la entrada del usuario. Llama a la función de devolución de llamada una vez que se presiona enter.

En esta función de devolución de llamada, cerramos la interfaz readline.

readlineofrece varios otros métodos, y dejaré que los revise en la documentación del paquete que vinculé anteriormente.

Si necesita solicitar una contraseña, es mejor no repetirla, sino mostrar una*símbolo.

La forma más sencilla es utilizar elreadline-syncpaqueteque es muy similar en términos de API y lo maneja de inmediato.

Una solución más completa y abstracta la proporciona elPaquete inquirer.js.

Puedes instalarlo usandonpm install inquirer, y luego puede replicar el código anterior de esta manera:

const inquirer = require('inquirer')

var questions = [{ type: ‘input’, name: ‘name’, message: “What’s your name?”, }]

inquirer.prompt(questions).then(answers => { console.log(Hi </span><span style="color:#e6db74">${</span><span style="color:#a6e22e">answers</span>[<span style="color:#e6db74">'name'</span>]<span style="color:#e6db74">}</span><span style="color:#e6db74">!) })

Inquirer.js le permite hacer muchas cosas como pedir múltiples opciones, tener botones de opción, confirmaciones y más.

Vale la pena conocer todas las alternativas, especialmente las integradas proporcionadas por Node, pero si planea llevar la entrada CLI al siguiente nivel, Inquirer.js es una opción óptima.

Descarga mi gratisManual de Node.js


Más tutoriales de nodos: