Primer programa Node.js con argumentos
Clase 3 de 20 • Curso de Fundamentos de Node.js
Contenido del curso
Módulos y gestión de paquetes
Módulos nativos en Node.js
- 8

CRUD de archivos con Node.js fs
10:20 min - 9

Script Node.js fs y Whisper API
16:31 min - 10

Cómo implementar transcript audio con OpenAI
06:28 min - 11

Console API en Node.js: métodos básicos
10:22 min - 12

Console.count y console.group en JavaScript
09:16 min - 13

Node.js: módulo os para datos del sistema
04:57 min - 14

Crypto de Node.js: hash SHA-256 completo
05:41 min - 15

Módulo process de Node.js en detalle
17:04 min - 16

Módulo timers en Node.js: setTimeout y setInterval
11:05 min - 17

Streams en Node.js para archivos grandes
10:47 min - 18

Buffers en Node.js: crear y transformar datos binarios
06:44 min
Servidores con Node.js
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.js
const 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.