Bienvenidos sean a este post, hoy veremos como ingresar datos por la linea de comandos.
Si bien no disponemos de una forma directa como en otros lenguajes si disponemos de esta posibilidad aunque es un poco mas compleja, para ello debemos importar un modulo llamado readline y desde ahi trabajaremos, para entenderlo vamos a realizar un ejemplo, generen un archivo entrada.js y agreguen el siguiente codigo:
entrada.js
const readline = require("readline");
const ingreso = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let nombre;
ingreso.question('Quien eres?\n', nombre => {
console.log("Hola " + nombre);
ingreso.close();
});
Primero crearemos una constante llamada readline, en esta almacenaremos el llamado al modulo readline, este sera el que realmente hace la magia, lo siguiente sera crear otra constante llamada ingreso que sera la cual trabajara, en realidad podemos considerar a ambas como objetos porque son basicamente creaciones de otros objetos, en el caso de ingreso utilizamos a readline para poder acceder al metodo createInterface, el cual creara la interfaz, al cual le pasamos un tuple como argumento para definir quien sera el encargado de ingresar datos (input) y devolver datos (output), y en ambos casos le decimos que utilice los procesos estandar de entrada y salida respectivamente, lo siguiente sera declarar una variable llamada nombre para la siguiente parte del codigo.
Despues observen que usamos a ingreso, donde creamos la interfaz, y en este utilizamos el metodo question, en la cual le preguntaremos cual es su nombre y la asignaremos a la variable antes definida despues utilizaremos una flecha de funcion, de la cual hablamos en este post, pero basicamente nos permite definir una funcion anonima y en ella mostraremos el valor que ingresamos con el metodo question, por ultimo cerraremos al objeto ingreso, con todo esto comentado podemos pasar a probar el script y veremos como trabaja mediante el siguiente video
Como pueden ver en el video funciono como deberia pero es la mas «sencilla», con todo esto pasemos a ver otra forma de poder hacer lo mismo pero deberemos hacer un paso antes, para ello debemos instalar un modulo llamado prompt, para ello ejecutaremos el siguiente comando:
npm install prompt
Esto es, resumiendo, la forma de instalar modulos de terceros para node.js no se preocupen porque mas adelante en otro post hablaremos a fondo sobre esta herramienta, actualmente esta herramienta se instala automaticamente al instalar node.js por lo tanto ya estara disponible, una vez instalado nuestro nuevo modulo vamos a tomar el codigo del ejemplo anterior y lo modificaremos de la siguiente manera:
entrada.js
const prompt = require("prompt");
prompt.start();
prompt.get('nombre', function(error, resultado) {
if (error)
console.log(error);
console.log("Hola " + resultado.nombre);
});
En este caso tenemos un codigo un poco mas simple dado que este modulo si se encarga de obtener la informacion para nosotros, primero al igual que antes usaremos un require para implementar el modulo prompt y a este lo asignaremos a la constante prompt, con nuestro «objeto» creado luego usaremos el metodo start para iniciarlo, lo siguiente sera usar el objeto y por medio del metodo get obtendremos el valor, en este caso se compone de dos partes, la primera sera la identificacion del dato que vamos a obtener, la segunda sera la funcion que procesara el dato ingresado, en el caso de la funcion puede ser otra o una anonima como en el ejemplo, pero en cualquiera de los casos siempre debe recibir dos argumentos, el primero para procesar el error que se puede generar y el otro sera el valor o los valores que pasemos.
Pasemos a analizar la funcion en el metodo get, primero tenemos un condicional donde verifica si se creo un error, en caso de ser verdadero procede a mostrarlo en la terminal, y en caso de no haber ocurrido nada procede a mostrar el valor que se recibio en resultado junto a un texto, con todo esto comentado vamos a verlo como funciona mediante el siguiente video
En el video podemos ver como trabaja el nuevo ingreso de datos, pero podemos manejar mas de un dato de ingreso, para ello vamos a tomar el codigo anterior y lo modificaremos de la siguiente manera:
entrada.js
const prompt = require("prompt");
prompt.start();
prompt.get(['nombre','email'], function(error, resultado) {
if (error)
console.log(error);
console.log("Hola " + resultado.nombre);
console.log("Tu email es " + resultado.email);
});
Es muy similar a lo visto anteriormentte pero tiene principalmente dos diferencias, veamos la primera:
prompt.get(['nombre','email'], function(error, resultado) {
Observen como pasamos el identificador, en este caso usamos un tuple, donde pasamos los identificadores y separados por comas, despues es todo igual pero agregamos una linea mas donde ahora mostraremos el nuevo valor, en este caso observen como a la variable que usamos como resultado le pasamos el campo que deseamos recuperar, vamos a probarlo de nuevo y ver como trabaja mediante el siguiente video
Observen como de una manera muy simple podemos hacer el ingreso de varios valores mediante el uso de un prompt y un tuple, para luego poder recuperarlos mediante un identificador, a su vez se puede mejorar utilizando una funcion para procesar mejor el error o con mas caracteristicas pero vuelven esto un poco mas complejo y no es la idea verlo ahora.
En resumen, hoy hemos visto como se puede ingresar informacion a nuestros codigos, como una funcion input o readline de otros lenguajes, primero vimos una forma basica y propia del lenguaje para poder trabajarlo, despues una que debemos importar un modulo externo para poder trabajar de una manera mas simple, y tambien nos da mas posibilidades con respecto a la primera, espero les haya sido de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.


Donación
Es para mantenimento del sitio, gracias!
$1.50
