Qué es Node.js y tu primer script
💡 🎯 Al terminar esta lección podrás…
- Explicar qué es Node.js y en qué se diferencia de JavaScript en el navegador.
- Instalar Node.js y comprobar su versión.
- Probar código en el REPL y ejecutar un archivo con
node archivo.js. - Crear un proyecto con
npm init -y.
1.¿Qué es Node.js?
Hasta ahora has ejecutado JavaScript dentro del navegador: el navegador lee tu código, lo ejecuta y te da herramientas para tocar la página (document, window, el DOM). Node.js es otra forma de ejecutar JavaScript: un entorno de ejecución que corre en tu computadora o en un servidor, sin navegador ni página.
Node usa el mismo motor de JavaScript que Chrome (V8) y le añade herramientas que un navegador no ofrece por seguridad: leer y escribir archivos, abrir un servidor que escucha peticiones, leer variables del sistema, lanzar otros programas.
| JavaScript en el navegador | JavaScript en Node.js | |
|---|---|---|
| Dónde corre | Dentro de una pestaña, al abrir una página | En una terminal, con el comando node |
| Objeto global | window (y globalThis) | globalThis (no existe window) |
DOM (document) | Sí | No: no hay página que modificar |
| Archivos del disco | No (solo con permiso del usuario) | Sí, con el módulo fs |
| Servidor | No | Sí: puede escuchar peticiones HTTP |
| Variables del sistema | No | Sí, con process.env |
| Lenguaje | JavaScript | El mismo JavaScript (funciones, arrays, objetos, async/await…) |
📌 Nota · Node no es un lenguaje ni un framework
Node.js es un entorno de ejecución. El lenguaje sigue siendo JavaScript; lo que cambia es dónde corre y qué herramientas tiene a mano. Todo lo que ya sabes de variables, funciones, arrays, objetos, fetch y async/await funciona igual.
¿Para qué se usa Node? Para tres grandes cosas:
- Servidores y APIs: programas que reciben peticiones y devuelven datos (lo harás desde la lección 4).
- Herramientas de desarrollo: Vite, los compiladores y los formateadores que usas en proyectos de React corren sobre Node.
- Automatizar tareas: renombrar cientos de archivos, procesar datos, generar informes.
2.Instalar Node.js y comprobarlo
Descarga el instalador desde nodejs.org y elige la versión LTS (Long Term Support, soporte a largo plazo). Es la versión estable que se recomienda para aprender y para producción. La versión «Current» trae novedades, pero cambia más rápido.
El instalador incluye también npm, el gestor de paquetes de Node (lo estudiarás en la lección 3). Cuando termine, cierra y vuelve a abrir la terminal y comprueba:
node --version
npm --version
v24.11.0
11.6.1
⚠️ Importante · Tus números pueden ser distintos
Los números de versión de arriba son solo un ejemplo. Lo importante es que aparezca una versión y no un error. Este curso funciona con cualquier Node LTS actual (22 o superior; en octubre de 2026 la recomendada es la 24).
INFO REFERENCIAL: las versiones cambian cada año. Es mejor que revises cuál es la LTS vigente en nodejs.org (consultado el 7-oct-2026).
La terminal es la ventana donde escribes comandos: en Windows, PowerShell o Windows Terminal; en macOS, la app Terminal; en Linux, tu terminal habitual. Si usas Cursor, puedes abrir una dentro del editor con Ctrl + Ñ o desde el menú Terminal → Nuevo terminal.
💡 Consejo · Varias versiones a la vez
Más adelante, si trabajas en proyectos que piden versiones distintas, existen gestores de versiones como nvm o fnm. Para empezar no los necesitas.
3.El REPL: probar JavaScript en la terminal
Si escribes node sin nada más, entras en el REPL (Read–Eval–Print Loop: lee, evalúa, imprime, repite). Es una consola interactiva, como la del navegador, pero dentro de la terminal.
node
Welcome to Node.js v24.11.0.
Type ".help" for more information.
> 2 + 3
5
> const nombre = "Ana"
undefined
> `Hola, ${nombre}`
'Hola, Ana'
> [1, 2, 3].map(n => n * 2)
[ 2, 4, 6 ]
> .exit
Cada línea que escribes se ejecuta al pulsar Enter y Node te muestra el resultado de la expresión. Comandos útiles del REPL:
| Comando | Qué hace |
|---|---|
.help | Lista los comandos del REPL |
.exit o Ctrl + D | Sale del REPL |
.clear | Reinicia el contexto (olvida tus variables) |
| ↑ / ↓ | Recorre los comandos anteriores |
| Tab | Autocompleta nombres |
💡 Consejo · Úsalo como libreta de pruebas
El REPL es ideal para comprobar rápido cómo funciona un método ("hola".padStart(8, "*")) sin crear ningún archivo. Para programas de verdad usarás archivos, que ves a continuación.
4.Tu primer script
Un script es un archivo de texto con código. Crea una carpeta para el curso (por ejemplo curso-node), ábrela en tu editor y crea el archivo hola.js:
const nombre = "Mundo";
console.log(`¡Hola, ${nombre}!`);
console.log("Estás usando Node.js", process.version);
console.log("Sistema operativo:", process.platform);
console.log("Carpeta actual:", process.cwd());
Ejecútalo desde la terminal, situada en la misma carpeta:
node hola.js
¡Hola, Mundo!
Estás usando Node.js v24.11.0
Sistema operativo: win32
Carpeta actual: C:\Users\ana\curso-node
Tu salida será parecida, pero con tu versión, tu sistema (win32, darwin en macOS o linux) y tu carpeta. Observa tres cosas nuevas:
console.logescribe en la terminal, no en una página.processes un objeto global que existe solo en Node: describe el programa que se está ejecutando.- Para ejecutar un archivo escribes
nodey el nombre del archivo.
📌 Nota · console.error
console.error("algo falló") escribe en un canal distinto (stderr) pensado para errores. En la terminal se ve igual, pero otros programas pueden separar los mensajes normales de los de error.
JavaScript que ya conoces, en Node
Para practicar sin salir de la lección, este editor ejecuta JavaScript en tu navegador. Sirve para las partes de JS puro (funciones, arrays, JSON), que se comportan igual en Node. Lo que no puedes probar aquí es lo propio de Node (process, fs, servidores): eso lo ejecutarás en tu terminal.
5.Recargar automáticamente con --watch
Mientras desarrollas, ejecutar node archivo.js a mano cada vez que guardas se vuelve pesado. Node trae una opción para vigilar el archivo y volver a ejecutarlo en cuanto lo guardes:
node --watch hola.js
¡Hola, Mundo!
Estás usando Node.js v24.11.0
…
Completed running 'hola.js'
Restarting 'hola.js'
Edita y guarda hola.js: el programa se reinicia solo. Para detenerlo pulsa Ctrl + C. Esta opción es especialmente útil con servidores, porque no tienes que pararlos y arrancarlos a mano.
⚠️ Importante · Ctrl + C es tu botón de parar
Un script normal termina solo al acabar su código. Pero un servidor o un --watch se quedan esperando. Para detenerlos pulsa Ctrl + C en la terminal.
6.Node y lo asíncrono (vistazo)
Node está construido alrededor de lo asíncrono: leer un archivo o pedir datos a internet tarda, y mientras espera, Node puede atender otras cosas. Por eso verás mucho async/await y promesas, que repasaste en el curso de JavaScript. Un ejemplo con setTimeout:
console.log("1. Empiezo");
setTimeout(() => {
console.log("3. Pasó un segundo");
}, 1000);
console.log("2. Sigo con lo demás");
1. Empiezo
2. Sigo con lo demás
3. Pasó un segundo
Esto es lo que permite que un único servidor de Node atienda a muchas personas a la vez: cuando una petición espera datos, Node avanza con las demás. Ese mecanismo se llama bucle de eventos (event loop). No necesitas dominarlo ahora: basta con recordar que lo lento se programa con promesas, no se espera bloqueando.
7.Convertir la carpeta en un proyecto: npm init
Un proyecto de Node suele tener un archivo package.json que describe el proyecto: su nombre, su versión, sus comandos y las bibliotecas que usa. Se crea con:
npm init -y
La opción -y acepta todas las respuestas por defecto. Se crea un package.json parecido a este (puede variar un poco según tu versión de npm):
{
"name": "curso-node",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}
No te preocupes por cada campo: en la lección 3 lo estudiarás completo. Por ahora quédate con la idea: un proyecto de Node es una carpeta con un package.json.
💡 Consejo · Una carpeta por proyecto
Crea una carpeta nueva para cada proyecto y ejecuta npm init -y dentro. Evita mezclar proyectos distintos en la misma carpeta.
8.Errores frecuentes
'node' no se reconoce como un comando(Windows) ocommand not found: Node no está instalado o no cerraste y reabriste la terminal tras instalarlo.Cannot find moduleal ejecutar un archivo: tu terminal está en otra carpeta. Comprueba la ruta conpwd(ocdsin argumentos en Windows) y entra en la carpeta concd curso-node.- Escribir
node hola.jsdentro del REPL: el REPL espera JavaScript, no comandos de terminal. Sal con.exity ejecuta el comando en la terminal normal. ReferenceError: document is not defined(owindow,alert): esas piezas del navegador no existen en Node.- Editar el archivo y no ver cambios: olvidaste guardar, o no volviste a ejecutar el comando (usa
--watch).
📒 Apuntes para llevar
- Node.js ejecuta JavaScript fuera del navegador, con el motor V8.
- No hay
documentniwindow, pero síprocess, el sistema de archivos y servidores. - Instala la versión LTS desde nodejs.org y comprueba con
node --version. nodea secas abre el REPL;node archivo.jsejecuta un archivo.node --watch archivo.jsreinicia el programa al guardar; Ctrl + C lo detiene.npm init -ycrea elpackage.jsonque convierte una carpeta en proyecto.
9.Glosario
| Término | Significado |
|---|---|
| Node.js | Entorno de ejecución que permite correr JavaScript fuera del navegador. |
| V8 | Motor de JavaScript de Chrome, que Node reutiliza. |
| LTS | Long Term Support: versión estable con soporte prolongado. |
| REPL | Consola interactiva de Node: lee, evalúa e imprime cada línea. |
| Script | Archivo con código que se ejecuta de principio a fin. |
process | Objeto global de Node con información del programa en ejecución. |
| npm | Gestor de paquetes que se instala junto con Node. |
package.json | Archivo que describe un proyecto de Node y sus dependencias. |
🧠 Comprueba lo aprendido
Elige una respuesta en cada pregunta. Verás al instante si acertaste y por qué.
¿Qué es Node.js?
Node.js es un entorno de ejecución: el lenguaje es JavaScript, pero corre en tu computadora o en un servidor, sin navegador.
¿Qué ocurre si usas document.getElementById("x") en un script de Node?
No hay página ni DOM en Node, así que document no está definido.
¿Cómo ejecutas un archivo llamado app.js?
El comando es node seguido del nombre del archivo.
¿Para qué sirve node --watch app.js?
--watch vigila el archivo y vuelve a ejecutarlo cada vez que cambia.
¿Qué crea el comando npm init -y?
Crea el package.json con valores por defecto; node_modules aparece solo al instalar paquetes.
Tu progreso se guarda en este navegador y se refleja en el índice del curso.
💡 🚀 ¡Ahora te toca!
La práctica fija lo aprendido. Pasa al ejercicio de esta lección.