Aprende, paso a paso y con buenas prácticas, a crear tu primer programa en Node.js que recibe argumentos por terminal, valida rangos y genera un número aleatorio. Verás cómo organizar el espacio de trabajo, iniciar git y configurar npm con seguridad y claridad.
¿Cómo preparar el entorno de Node.js y el espacio de trabajo?
Tener un entorno ordenado acelera el desarrollo. Necesitas una terminal, un editor de código y una carpeta para tus proyectos. Se recomienda crear una carpeta de trabajo (por ejemplo, dev) y clasificar proyectos: de trabajo, personales o de pruebas puntuales. Así mantienes control y contexto.
¿Por qué usar Git desde el inicio?
Ejecuta git init para guardar el historial local de cambios.
No obliga a subir a GitHub o BitBucket.
Ayuda a recordar qué cambió, cuándo y por qué.
¿Cómo organizar la carpeta del proyecto?
Crea la carpeta del proyecto: mkdir nodejs.
Entra en la carpeta y abre el editor: code . en Visual Studio Code.
Crea la estructura base: carpeta src y archivo src/index.js.
¿Cómo inicializar npm y configurar el proyecto?
Inicializa el proyecto con npm init. Responde a las indicaciones para definir metadatos y el punto de entrada.
¿Qué datos define npm init?
Nombre: toma el de la carpeta automáticamente.
Versión: 1.0 por defecto.
Descripción: “Node.js examples”.
Punto de entrada: index.js.
Scripts de prueba: por ahora ninguno.
Repositorio: omite si no usarás un remoto.
Palabras clave: opcional por ahora.
Autor: “Óscar Barajas” con correo.
Licencia: MIT para permitir uso, distribución y ventas.
¿Cómo crear un generador de números aleatorios con argumentos en Node.js?
El programa genera un número aleatorio entre 1 y 100 si no recibe argumentos. Si le pasas dos valores por terminal, usa ese rango mínimo y máximo. Incluye validaciones para evitar errores por entradas inválidas.
¿Cómo capturar y validar argumentos por terminal?
Captura argumentos reales a partir de la tercera posición: process.argv.slice(2).
Define valores por defecto: min = 1 y max = 100.
Si hay al menos dos argumentos, conviértelos con parseInt en base 10.
Valida que no sean NaN y que min < max.
Si el rango no es válido, muestra un mensaje y usa los valores por defecto.
// src/index.jsconst args = process.argv.slice(2);let min =1;let max =100;if(args.length>=2){const parseMin =parseInt(args[0],10);const parseMax =parseInt(args[1],10);if(!isNaN(parseMin)&&!isNaN(parseMax)&& parseMin < parseMax){ min = parseMin; max = parseMax;}else{console.log('rango inválido: usando valores por defecto del 1 al 100.');}}const randomNumber =Math.floor(Math.random()*(max - min +1))+ min;console.log(`número aleatorio generado entre ${min} y ${max}: ${randomNumber}`);
Habilidades y conceptos que aplicas:
Uso de process.argv y slice(2) para leer argumentos reales.
Valores por defecto y reasignación controlada con let.
Conversión numérica con parseInt y base 10.
Validaciones con isNaN y comparación de rangos (min < max).
Manejo de errores de usuario con mensajes claros.
¿Cómo generar un número aleatorio inclusivo?
Fórmula clave: Math.floor(Math.random() * (max - min + 1)) + min.
Math.random genera [0, 1), sin incluir 1.
Al multiplicar por (max - min + 1) y sumar min, aseguras incluir ambos extremos del rango.
¿Cómo ejecutar y depurar en la terminal?
Ejecutar sin argumentos: node src/index.js.
Ejecutar con rango: node src/index.js 10 50.
Entradas inválidas (por ejemplo, “hola” 20): muestra “rango inválido” y usa 1–100.
Si aparece un error, lee el mensaje: por ejemplo, confundir process.args con process.argv impide usar slice. Los errores señalan dónde corregir.
¿Te animas a mejorar la validación? Propón cómo evitar imprimir un aleatorio cuando el rango sea inválido y cuéntalo en los comentarios.