¿Cómo aceptar entradas desde la línea de comandos en Node.js?

Como Aceptar Entradas Desde La Linea De Comandos En Node Js



Node.js es un conocido entorno de ejecución de JavaScript gratuito de código abierto que permite a los usuarios ejecutar el código JavaScript desde un archivo o directamente desde la línea de comandos. Ejecutar un código JavaScript desde un archivo requiere un archivo “. js ”comando de archivo mientras la línea de comando ejecuta el código JavaScript directamente línea por línea.

A veces, el usuario necesita configurar la información mientras inicia la aplicación Node.js desde la línea de comando a través del botón ' nodo ”. En tal situación, el usuario necesita pasar esa información directamente como entrada con el comando de ejecución en lugar de escribirla en el archivo “. js ' archivo.







Este artículo analizará todos los métodos posibles para aceptar entradas desde la línea de comandos en Node.js.



¿Cómo aceptar entradas desde la línea de comandos en Node.js?

Node.js ofrece los siguientes módulos para aceptar entradas desde la línea de comandos:



Comencemos con el ' línea de lectura ”módulo.





Requisitos previos : Antes de pasar a la implementación práctica de cualquier método, primero cree un archivo “. js ”archivo de cualquier nombre y escriba todo el código fuente en él. Aquí hemos creado un “ índice Archivo .js”.

Método 1: aceptar entradas desde la línea de comandos utilizando el módulo 'readline'

El ' línea de lectura El módulo 'crea una interfaz para leer la entrada del usuario del flujo legible y devolver su respuesta como salida resultante. Es un módulo integrado por lo que el usuario puede importarlo directamente a la aplicación Node.js sin instalarlo usando ' mpn ”.



En este escenario, se utiliza para tomar la entrada de la línea de comando y luego imprimirla en la pantalla de salida. Aquí está su implementación práctica:

constante línea de lectura = requerir ( 'línea de lectura' )
constante rl = línea de lectura. crear interfaz ( {
aporte : proceso. entrada estándar ,
producción : proceso. salida estándar
} )
rl. pregunta ( `Mejor plataforma para contenido técnico ? ` , sitio web => {
rl. pregunta ( `¿Qué categoría le gustaría explorar? ? ` , categoría => {
consola. registro ( `sitio web : $ { sitio web } , Categoría : $ { categoría } ` )
rl. cerca ( )
} )
} )

La descripción de las líneas de código anteriores es la siguiente:

  • En primer lugar, el “ requerir ()” importa el método “ línea de lectura ”Módulo en el proyecto actual de Node.js.
  • A continuación, el “ crear interfaz ()” método especifica el “ entrada y salida ”fluye como un objeto. El ' aporte 'La secuencia utiliza el' proceso.stdin 'Propiedad para recibir información del usuario.
  • El ' producción 'La transmisión utiliza el' proceso.stdout ”Propiedad para leer el flujo de entrada e imprimirlo como salida estándar del flujo de entrada dado.
  • Después de eso, el “ rl.pregunta ()” toma la entrada del usuario. Pasa la pregunta como primero y la función de devolución de llamada como segundo argumento. La función de flecha de devolución de llamada dada recupera los valores ingresados ​​por el usuario.
  • En la definición de lo dado “ sitio web ', y el ' categoría 'Función de flecha de devolución de llamada, el' consola.log ()” se utiliza para mostrar los valores ingresados.
  • Por último, el “ rl.cerrar ()” cierra la interfaz creada anteriormente.

Producción

Iniciar el “ índice .js” ejecutando el comando proporcionado:

índice de nodo. js

El siguiente resultado muestra una interfaz de línea de lectura que toma la entrada del usuario desde la línea de comando y luego muestra el valor ingresado como salida estándar:

Método 2: aceptar entradas desde la línea de comandos utilizando el módulo “readline-sync”

El ' sincronización de línea de lectura 'Es el módulo de terceros que recupera sincrónicamente la información relacionada con las preguntas codificadas y almacena sus respuestas correspondientes para operaciones futuras. Actúa como comunicación entre el cliente y el servidor desde la línea de comando.

La principal diferencia entre módulos asíncronos y síncronos es que el “ asincrónico ”bloquea la ejecución del código fuente hasta que no se realiza la tarea especificada, mientras que los módulos sincrónicos ejecutan el código línea por línea de manera secuencial.

Instalar el módulo “readline-sync”

El “readline-sincronización” El módulo no es un módulo integrado, por lo que debe instalarse manualmente ejecutando el siguiente comando:

npm instala la línea de lectura - sincronizar

El resultado muestra que el módulo readline-sync se ha agregado al proyecto actual de Node.js:

Ahora, usa el ' sincronización de línea de lectura ”módulo prácticamente siguiendo el fragmento de código proporcionado:

era línea de lecturaSincronización = requerir ( 'readline-sincronización' ) ;
era empNombre = readlineSync. pregunta ( 'Nombre de empleado: ' ) ;
era jd = readlineSync. pregunta ( 'Descripción del trabajo: ' ) ;
  era compañía = readlineSync. pregunta ( 'Compañía: ' , {
} ) ;
consola. registro ( empNombre + 'funciona como' + jd + ' en ' + compañía ) ;

La explicación del código anterior es la siguiente:

  • Primero el ' sincronización de línea de lectura 'El módulo se importa dentro del archivo y su objeto se almacena en una nueva variable'. línea de lecturaSincronización ”.
  • A continuación, se realiza la consulta con la ayuda del botón “ pregunta ()” método especificándolo como argumento.
  • El mismo procedimiento se utiliza para formular las siguientes preguntas.
  • Después de eso, el “ consola.log ()” se utiliza para mostrar los valores ingresados ​​junto con la cadena entrecomillada.

Producción

Ejecute el “ índice Archivo .js”:

índice de nodo. js

El resultado muestra que, de manera sincrónica, las aportaciones de los usuarios se han tomado y mostrado mediante el botón ' sincronización de línea de lectura ”módulo:

Método 3: aceptar entradas desde la línea de comando usando el módulo 'prompt'

El ' inmediato 'Es un módulo asincrónico que crea una función de solicitud para almacenar la entrada del usuario como el valor de la variable y luego recuperarla como la salida resultante. No es necesario configurar explícitamente el flujo de lectura y escritura, por eso es bastante fácil de usar en comparación con el ' línea de lectura ”módulo.

Instalar el módulo 'rápido'

El ' inmediato 'También es un módulo de terceros que se puede instalar fácilmente con la ayuda de ' npm ' De este modo:

mensaje de instalación de npm -- ahorrar

En el comando anterior, el ' -ahorrar 'La bandera agrega el' inmediato 'Módulo al' paquete.json ' archivo.

Se puede analizar que el “ inmediato ”se ha agregado al proyecto actual de Node.js:

Ahora, use el instalado ' inmediato ”módulo prácticamente con la ayuda del siguiente fragmento de código:

constante inmediato = requerir ( 'inmediato' )
inmediato. comenzar ( )
inmediato. conseguir ( [ 'nombre del autor' , 'Categoría' ] , ( errar , resultado ) => {
si ( errar ) {
  tirar errar

} demás {
consola. registro ( `$ { resultado. nombre del autor } funciona en $ { resultado. Categoría } ` )

}
} )

En el bloque de código mencionado anteriormente:

  • El ' requerir ()” importa el método “ inmediato ”Módulo en el proyecto.
  • El ' comenzar ()” inicia el mensaje.
  • El ' conseguir ()” toma la entrada del usuario a través de la línea de comando. Especifica los nombres de las propiedades y la función de flecha de devolución de llamada como primer y segundo parámetro.
  • La función de devolución de llamada con ' errar ' y ' resultado 'Los parámetros definen un' si no ' declaración.
  • Si ocurre algún tipo de error entonces el “ si 'El bloque arrojará ese error; de lo contrario, el' demás El bloque 'mostrará los valores de las propiedades especificadas como salida.

Producción

Ejecute el ' índice Archivo .js”:

índice de nodo. js

El siguiente resultado toma la entrada del usuario en función de las propiedades especificadas y luego recupera sus valores como resultado:

Método 4: aceptar entradas desde la línea de comando utilizando el módulo 'inquirer'

En Node.js, el ' investigador ”es una manera fácil de recibir información desde la línea de comando. Viene con varios métodos útiles para recibir información de los usuarios y luego devolver la salida usando el botón ' respuesta ”objeto y el “. entonces ()” método incorporado.

Es útil para hacer diferentes tipos de preguntas al usuario a través de la línea de comando, como lista, opciones, entrada, casillas de verificación y mucho más. Proporciona una manera conveniente de hacer que la interfaz de línea de comandos sea interactiva para tareas basadas en consultas.

Siga la guía detallada en “ Recibir información desde la línea de comandos usando Node.js Inquirer ”para demostración práctica.

Consejo: ¿Cómo pasar argumentos desde la línea de comando en Node?

El usuario también puede pasar argumentos desde la línea de comando. Para tal efecto, el “ proceso.argv Se puede utilizar la propiedad. El ' argv ' es la propiedad incorporada del módulo 'proceso' que se utiliza para pasar los argumentos desde la línea de comando mientras se ejecuta la aplicación Node.js usando el ' nodo ' dominio.

Siga la guía detallada en “ Pasar argumentos desde la línea de comandos en Node.js ”para demostración práctica.

Se trata de aceptar entradas desde la línea de comando en Node.js.

Conclusión

Para aceptar la entrada desde la línea de comando, use el método asincrónico ' línea de lectura ”, o el sincrónico “ sincronización de línea de lectura ”módulo. Además, también se puede realizar a través del “ inmediato ' o el ' investigador ”módulo. Excepto por el ' sincronización de línea roja ”Módulo, todos los módulos restantes son asíncronos. Este artículo analiza todos los métodos posibles para aceptar entradas desde la línea de comandos en Node.js.