DevPath · Aprende a programar ESPTEN

Node.js: entorno, módulos y async

Módulos y npm

Dividir el código en módulos

Una aplicación real no cabe en un archivo. Node permite separar el código en módulos (archivos) que exportan e importan funcionalidad. Existen dos sistemas que convivirán mucho tiempo.

CommonJS (el clásico de Node)

Usa require para importar y module.exports para exportar:

// matematicas.js
function sumar(a, b) { return a + b; }
module.exports = { sumar };

// app.js
const { sumar } = require("./matematicas");
console.log(sumar(2, 3)); // 5

ES Modules (el estándar moderno)

Es la sintaxis estándar del lenguaje, la misma que en el navegador. Usa import / export:

// matematicas.js
export function sumar(a, b) { return a + b; }

// app.js
import { sumar } from "./matematicas.js";

Para usar ESM en Node se pone "type": "module" en el package.json (o se usa la extensión .mjs). Diferencias clave: require es síncrono y dinámico (puedes llamarlo dentro de un if); import es estático (se resuelve antes de ejecutar) y permite optimizaciones.

package.json y npm

El package.json es la ficha del proyecto: nombre, versión, scripts y dependencias. Con npm (el gestor de paquetes de Node) instalas librerías:

{
  "name": "mi-app",
  "type": "module",
  "scripts": { "start": "node app.js" },
  "dependencies": { "express": "^4.18.0" }
}

npm install express descarga el paquete a node_modules y lo anota en dependencies. Luego lo importas por su nombre: import express from "express".

La librería estándar

Node trae módulos integrados (no hay que instalarlos):

Ejemplos

Importar un módulo de la librería estándar (CommonJS)

const path = require("path");
console.log(path.join("carpeta", "archivo.txt")); // "carpeta/archivo.txt"
console.log(path.extname("foto.png"));             // ".png"
Pon esto en práctica

DevPath es un curso práctico: aquí lees la teoría; en la app la pones en práctica con ejercicios que se ejecutan de verdad, sin conexión.

Empezar gratis en la app →
← Qué es Node.jsAsincronía en Node →