Hoy · Hoja de ruta
- 1. Aprende: Qué es Node.js, qué desaparece y qué aparece respecto al navegador.
- 2. Haz: Instala, comprueba la versión y ejecuta tus primeros programas.
- 3. Comprueba: Sabes qué código de la UD3 funciona aquí y cuál no.
Antes de empezar · 5 minutos, sin apuntes
- ¿Qué partes de tu código de la UD4 crees que no funcionarán fuera del navegador?
- ¿Y cuáles funcionarán sin tocar nada?
- ¿Quién ejecuta el código de un servidor, y durante cuánto tiempo?
Un motor sin navegador
Node.js es el motor de JavaScript de Chrome, sacado del navegador y empaquetado como un programa que puedes ejecutar en tu máquina. Alrededor le añadieron lo que un navegador no le deja hacer: acceso al sistema de ficheros, a la red y a los procesos del sistema.
node --version
node -e "console.log('Hola desde Node')"
node src/hola.js
Existe también un modo interactivo, equivalente a la consola del navegador: la orden node sin argumentos abre un intérprete donde se evalúan expresiones.
Lo que ya no existe
document.querySelector("h1"); // ReferenceError: document is not defined
window.localStorage; // ReferenceError
alert("Hola"); // ReferenceError
No es que estén rotos: es que no tienen sentido. No hay documento ni ventana. Todo el módulo catalogo.js de la UD3, en cambio, funciona aquí sin cambiar una coma, porque solo trabaja con datos. Ese es, otra vez, el premio de haber separado la lógica de la página.
Lo que aparece
process.argv; // los argumentos de la llamada
process.env; // las variables de entorno
process.exit(1); // terminar con un código
process.cwd(); // desde dónde se ejecutó
console.log(import.meta.url); // el fichero actual
Los módulos del sistema se importan con el prefijo node::
import { readFile } from "node:fs/promises";
import path from "node:path";
import http from "node:http";
El prefijo node:
Deja claro que el módulo es del propio Node y no una dependencia descargada. Sin él también funciona, pero con él nadie puede confundir tu importación con un paquete externo instalado por alguien.
Un programa que empieza y termina
Un programa de Node no es una página
Una página vive mientras esté abierta y reacciona a lo que hace una persona. Un programa de Node se ejecuta, hace su trabajo y termina; salvo que sea un servidor, y entonces se queda escuchando hasta que alguien lo pare.
De ahí una diferencia práctica: un fallo en el navegador estropea la experiencia de quien visita la web; un fallo no capturado en un servidor puede tumbarlo para todo el mundo a la vez.
Tarea 1 · Primeros programas
- Comprueba tu versión de Node; debe ser 22 o superior.
- Crea
src/hola.jsque salude e imprima la versión desdeprocess.version. - Copia tu
catalogo.jsde la UD3 y ejecuta sus funciones desde Node. - Intenta usar
documenty anota el error exacto. - Imprime
process.cwd()ejecutando desde dos carpetas distintas y explica la diferencia. - Prueba el modo interactivo con tres expresiones.
Checkpoint · fin de la sesión 1
- Ejecutas programas desde la terminal.
- Explicas qué desaparece y qué aparece respecto al navegador.
- Reutilizas sin cambios la lógica de la UD3.
- Importas módulos del sistema con el prefijo
node:.
Antes de cerrar · 2 minutos, sin mirar
- ¿Por qué no existe
documenten Node? - ¿Qué guarda
process.argv? - ¿Qué indica el prefijo
node:en una importación?
Ver respuestas
1 · Porque no hay documento: Node ejecuta JavaScript sin navegador.
2 · Los argumentos con los que se llamó al programa, empezando por el ejecutable y el fichero.
3 · Que el módulo es del propio Node y no una dependencia instalada.