módulo en Node.js-#02 Módulos - Exports y Require
12. Ejecutando Código de Node desde el package.json
1. Crear el archivo principal
JS → Siempre tienes que tener un archivo principal. Este archivo se va a encargar de llamar todos los demás archivos de tu aplicación.
Puedes nombrarlo como desees:
app.js
index.js
main.js
O el nombre del proyecto
A diferencia de HTML (donde el archivo principal se llama index.html), aquí tú eliges el nombre.
En este caso lo nombraremos index.js (para mantener la costumbre).
// index.js
console.log('Hola Mundo')
El punto y coma es opcional en JavaScript.
app.js
index.js
main.js
O el nombre del proyecto
A diferencia de HTML (donde el archivo principal se llama index.html), aquí tú eliges el nombre.
index.js (para mantener la costumbre).// index.js console.log('Hola Mundo')
El punto y coma es opcional en JavaScript.
2. Configurar el script en package.json
Dentro de package.json, en la sección "scripts", agregamos:
"scripts": {
"start": "node index.js"
}
"start" → nombre del script
"node index.js" → comando a ejecutar
La notación ./index.js o solo index.js es correcta.
package.json, en la sección "scripts", agregamos:"scripts": { "start": "node index.js" }
"start" → nombre del script
"node index.js" → comando a ejecutar
La notación ./index.js o solo index.js es correcta.
3. Ejecutar el script
En la terminal:
npm run startO de forma abreviada (solo para start):
npm startResultado:
> node index.js
Hola Mundo
npm run startstart):npm start> node index.js Hola Mundo
4. Hacer cambios automáticos con Nodemon
Para no tener que reiniciar manualmente, instalamos nodemon como dependencia de desarrollo:
npm i -D nodemon
En package.json verás:
"devDependencies": {
"nodemon": "^2.0.16"
}
Agregamos un nuevo script:
"scripts": {
"start": "node index.js",
"server": "nodemon index.js"
}
Ejecutamos:
npm run serverAhora cada vez que guardes cambios, el servidor se reiniciará automáticamente.
npm i -D nodemon
package.json verás:"devDependencies": { "nodemon": "^2.0.16" }
"scripts": { "start": "node index.js", "server": "nodemon index.js" }
npm run serverEjemplo práctico
// index.js
console.log(2 + 2)
console.log(2 + 3)
Con npm run server verás los cambios al guardar el archivo.
// index.js console.log(2 + 2) console.log(2 + 3)
npm run server verás los cambios al guardar el archivo.¿Qué es un módulo en Node.js?
Un módulo es un archivo JavaScript (o colección de archivos) que encapsula código relacionado. Los módulos te permiten organizar tu aplicación en partes reutilizables y mantener el código limpio.
Tipos de módulos en Node.js
1. Módulos nativos (core modules)
Vienen incluidos con Node.js. No necesitas instalarlos.
const fs = require('fs'); // Sistema de archivos
const http = require('http'); // Servidor HTTP
const path = require('path'); // Rutas de archivos
const os = require('os'); // Información del sistema2. Módulos locales (propios)
Son archivos que tú creas. Cada archivo es un módulo.
// archivo: math.js
const sumar = (a, b) => a + b;
module.exports = { sumar };
// archivo: app.js
const { sumar } = require('./math.js');
console.log(sumar(5, 3)); // 83. Módulos de terceros (npm packages)
Los instalas mediante npm (Node Package Manager).
npm install express
npm install axios
npm install lodashconst express = require('express');
const axios = require('axios');
const _ = require('lodash');La carpeta node_modules
Cuando instalas paquetes con npm, se crea una carpeta llamada node_modules donde se guardan todas las dependencias del proyecto.
mi-proyecto/
├── node_modules/ # Todas las dependencias instaladas
│ ├── express/
│ ├── axios/
│ └── ...
├── package.json # Lista de dependencias
├── package-lock.json # Versiones exactas
└── app.js # Tu códigoEl archivo package.json
Define las dependencias de tu proyecto:
{
"name": "mi-app",
"version": "1.0.0",
"dependencies": {
"express": "^4.18.0",
"axios": "^1.3.0"
}
}Sistema de módulos en Node.js
Node.js usa dos sistemas de módulos:
CommonJS (tradicional)
// Exportar
module.exports = miFuncion;
// Importar
const miFuncion = require('./mi-modulo');ES Modules (moderno, Node.js 12+)
// Exportar (necesitas "type": "module" en package.json)
export const miFuncion = () => {};
// Importar
import { miFuncion } from './mi-modulo.js';Buenas prácticas
No subas
node_modulesa Git - usa.gitignoreUsa
package-lock.jsonpara versiones consistentesInstala dependencias con
--save(ahora es por defecto)Distingue entre
dependenciesydevDependenciesdependencies: necesarias en produccióndevDependencies: solo para desarrollo (testing, linting, etc.)
npm install express --save-prod # dependencies
npm install jest --save-dev # devDependenciesComandos útiles
npm init -y # Crear package.json
npm install # Instalar todas las dependencias
npm install nombre-paquete # Instalar un paquete
npm uninstall nombre-paquete # Eliminar un paquete
npm update # Actualizar paquetesResumen visual
Tu Código → require/import → Node.js → Busca en:
1. Módulos nativos
2. Módulos locales (./archivo)
3. node_modules/¿Hay algún aspecto específico que quieras que profundice más?
Módulos en Node.js - Exports y Require
Introducción
Bienvenidos a un nuevo vídeo tutorial. Estoy muy contento y feliz porque comenzaremos con nuestro curso de Node.js. Si no sabes nada de Node.js y quieres aprender paso a paso y en la práctica, este curso es para ti.
¿Qué es Node.js?
Node.js nos permite ejecutar código de JavaScript en el servidor. Hasta ahora, usabas JavaScript en el navegador para manipular el DOM, hacer eventos, etc. Con Node.js, llevamos JavaScript al servidor para crear aplicaciones web, servidores HTTP, APIs, y trabajar con bases de datos.
Requisito: Antes de comenzar, debes saber JavaScript básico (variables, funciones, arrays, bucles). Si ya lo sabes, ¡comencemos!
1. Instalación de Node.js
Ve a la página oficial: nodejs.org
Descarga la versión recomendada (LTS) o la actual.
Instala con "next, next, next".
Reinicia tu computadora.
Abre la terminal (cmd) y escribe:
node -vSi ves una versión (ej:
v18.17.0), está instalado correctamente.
2. Primeros pasos - Ejecutando JavaScript en la terminal
Crea una carpeta llamada fundamentos y ábrela con Visual Studio Code.
Archivo app.js:
const frutas = ['platano', 'manzana', 'platano', 'pera'];
frutas.forEach(item => {
console.count(item);
});Ejecutar en la terminal:
node app.jsSalida esperada:
platano: 1
manzana: 1
platano: 2
pera: 1✅ Ya estás ejecutando JavaScript en el servidor (tu máquina local).
3. Módulos - Exportar e Importar (require y module.exports)
Cuando tu proyecto crece, es mejor separar el código en diferentes archivos (módulos). Node.js usa module.exports para exportar y require() para importar.
Ejemplo 1: Exportar un solo elemento
Archivo frutas.js:
const frutas = ['platano', 'manzana', 'platano', 'pera'];
module.exports = frutas;Archivo app.js:
const frutero = require('./frutas');
frutero.forEach(item => {
console.count(item);
});Ejecutar:
node app.js⚠️ Error común: Si usas
frutas.forEachen lugar defrutero.forEach, dará error porque la variable de importación se llamafrutero.
4. Exportar múltiples variables (Objeto)
Si quieres exportar más de una variable, debes usar un objeto.
❌ Forma incorrecta (sobreescribe):
module.exports = frutas;
module.exports = dinero; // Esto sobreescribe frutas✅ Forma correcta:
Archivo frutas.js:
const frutas = ['platano', 'manzana', 'platano', 'pera'];
const dinero = 1000;
module.exports = {
frutas: frutas, // o solo "frutas," si se llama igual
dinero: dinero
};Archivo app.js (usando desestructuración):
const { frutas, dinero } = require('./frutas');
frutas.forEach(item => {
console.count(item);
});
console.log(dinero);Salida:
platano: 1
manzana: 1
platano: 2
pera: 1
1000✅ Así importamos múltiples valores de un solo módulo.
5. Resumen rápido
| Concepto | Sintaxis |
|---|---|
| Exportar una variable | module.exports = variable |
| Exportar múltiples | module.exports = { clave: valor } |
| Importar | const algo = require('./ruta') |
| Importar con desestructuración | const { clave1, clave2 } = require('./ruta') |
Buenas prácticas
Usa nombres descriptivos para los módulos.
Agrupa funcionalidad relacionada en un solo archivo.
Siempre usa rutas relativas (
./para el mismo directorio).La desestructuración hace el código más limpio cuando exportas múltiples valores.
Próximos pasos
En el siguiente vídeo veremos:
Módulos nativos de Node.js (fs, path, http)
Crear un servidor HTTP básico
NPM (Node Package Manager) y cómo instalar paquetes
Recuerda
Node.js no es un lenguaje, es un entorno de ejecución que permite correr JavaScript fuera del navegador.
¡Nos vemos en el próximo tutorial! Si te gustó, dale like y suscríbete. Todo el material está en la descripción.
*******************
Primeros pasos con Dependencias
Miniatura de la clase
1:11 / 8:03
En este vídeo estaremos viendo cómo instalar dependencias a nuestro proyecto de Node.js.
Como mencioné anteriormente, estaremos utilizando Express, así que veremos cómo instalarlo.
Paso 1: Abrir la terminal
Vamos a abrir aquí la terminal: New Terminal
Paso 2: Instalar una dependencia
La forma en la que instalas dependencias es colocando npm install o también puedes colocar únicamente npm seguido del nombre de la dependencia:
npm install expresso
npm i expressTipos de dependencias
Existen dos tipos de dependencias:
| Tipo | Descripción | Se guarda en |
|---|---|---|
| Dependencia de desarrollo | Solo se utiliza mientras desarrollas el proyecto | devDependencies |
| Dependencia de producción | Se requiere en el proyecto en producción para que funcione correctamente | dependencies |
¿Cómo saber cuál es cuál?
La experiencia te lo va a dar. Aquí va un pequeño tip:
Dependencia de producción (se requiere en el servidor):
ORM o forma de consultar la base de datos
Sistema de pagos
Autenticación
Dependencia de desarrollo (solo local):
Compilar SASS a CSS
Compilar JavaScript
Herramientas que no se ejecutan en el servidor
Una vez que publicas el proyecto, los archivos de CSS y JavaScript ya no se modifican en el servidor. Se modifican localmente, se prueban y después se vuelven a subir.
Paso 3: Instalar Express (dependencia normal)
npm i express¿De dónde vienen estos nombres?
Todas estas dependencias se descargan del sitio: npmjs.com
Allí puedes buscar paquetes. Por ejemplo:
Buscar librería para hashear passwords
Stripe para pagos
etc.
Consejos importantes al elegir una dependencia:
Revisar cuándo fue actualizada por última vez (no debe tener años)
Ver la cantidad de descargas
Leer la documentación
Ver ejemplos de uso
Paso 4: ¿Qué se crea al instalar una dependencia?
Al instalar una dependencia, aparecen dos cosas nuevas en tu proyecto:
1. package-lock.json
Es un archivo que se crea automáticamente
Maneja las dependencias de las dependencias (y sus dependencias)
Almacena ubicaciones y versiones exactas
⚠️ Nunca lo modifiques - si el código no funciona, modificarlo solo empeorará las cosas
2. Carpeta node_modules
Aquí se colocan todas las dependencias que vamos instalando
Al instalar Express, aparecen muchas otras (porque Express las requiere)
Esta carpeta puede crecer bastante (200-500 MB)
Tip: Puedes eliminar la carpeta
node_modulespara ahorrar espacio. Si vuelves a ejecutarnpm i, se reinstalarán todas las dependencias definidas enpackage.json.
Paso 5: Instalar una dependencia de desarrollo
Se instala de dos formas diferentes:
npm i --save-dev nombre-dependenciao
npm i -D nombre-dependenciaCualquiera de las dos la coloca como una dependencia de desarrollo en devDependencies.
¿Qué hace la sección devDependencies?
Cuando llevas el proyecto a producción, el hosting:
Lee el
package.jsonIgnora las dependencias en
devDependenciesSolo instala las que están bajo
dependencies
⚠️ Punto importante: Formato JSON
El package.json es un archivo JSON, por lo tanto:
Las comillas dobles son obligatorias (no comillas sencillas)
Las comas deben ser correctas - si eliminas una sección, elimina también la coma
Ejemplo de error:
{
"dependencies": { "express": "^4.18.0" }, // ← esta coma sobra si no hay más secciones
}Correcto:
{
"dependencies": { "express": "^4.18.0" }
}Resumen final
Express es una dependencia normal (producción)
La vamos a mantener como
dependenciesEn el próximo vídeo veremos cómo ejecutar el código de Node.js
Ejemplo con un servidor (más realista)
Si tu código tiene un servidor que no termina solo:
1. index.js con servidor simple:
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hola Mundo!');
});
server.listen(3000, () => {
console.log('Servidor corriendo en http://localhost:3000');
});2. Ejecutar:
node index.jsSalida:
Servidor corriendo en http://localhost:3000El cursor se queda fijo porque el servidor sigue corriendo.
3. Hacer un cambio en el código (por ejemplo, cambiar el mensaje):
res.end('Hola Mundo! - Cambio nuevo');4. Detener con Ctrl + C:
^C5. Volver a ejecutar:
node index.jsServidor corriendo en http://localhost:3000El cambio ya está activo.
Resumen rápido
| Acción | Comando/Tecla |
|---|---|
| Iniciar app | node index.js |
| Detener app (si está corriendo) | Ctrl + C |
| Volver a iniciar | node index.js |
Comentarios
Publicar un comentario