Qué es Node.js: JavaScript en el servidor
Explicamos con ejemplos la arquitectura basada en eventos de Node.js, en qué tareas es fuerte y los usos típicos de backend montados con Express.js.

Node.js es un entorno de ejecución de código abierto que ejecuta código JavaScript fuera del navegador, en el servidor y en el ordenador. Está construido sobre el motor V8 de Google y, con su modelo de entrada y salida basado en eventos y no bloqueante, gestiona de forma eficiente muchas conexiones a la vez. Se usa ampliamente para APIs, aplicaciones en tiempo real, servicios de integración y herramientas de línea de comandos.
¿Qué es Node.js?
Para responder a la pregunta qué es Node.js, primero hay que corregir un malentendido: Node.js no es un lenguaje de programación ni un framework. El lenguaje sigue siendo JavaScript; Node.js es el entorno que puede ejecutar ese lenguaje fuera del navegador.
Durante muchos años JavaScript vivió solo en el navegador. Node.js, que apareció en 2009, llevó V8, el motor JavaScript de Chrome, al servidor y dotó al lenguaje de capacidades como leer archivos, establecer conexiones de red y acceder a bases de datos. Así, un mismo lenguaje pudo usarse tanto en el front-end como en el back-end.
npm, que viene con Node.js, da acceso a uno de los mayores registros de paquetes de código abierto del mundo. Esta herramienta, que sirve para iniciar un proyecto, añadir dependencias y ejecutar scripts, hace de Node.js algo imprescindible no solo para quienes escriben servidores, sino también para los desarrolladores de front-end.
Si aún no conoce los conceptos básicos de JavaScript, le recomendamos echar primero un vistazo al artículo qué es JavaScript; el código que escriba en Node.js usa la misma sintaxis.
Cómo funciona la arquitectura basada en eventos
La característica más distintiva de Node.js es su modelo de bucle de eventos (event loop). En algunas estructuras de servidor tradicionales, se abre un hilo distinto por cada petición y ese hilo espera hasta que llega la respuesta de la base de datos. Node.js, en cambio, no espera: inicia la petición, pide que le avisen cuando llegue la respuesta y mientras tanto atiende otras peticiones.
Puede compararlo con un camarero de restaurante. El camarero lleva el pedido a la cocina y no se queda junto a la mesa hasta que se cocina el plato; atiende otras mesas y, cuando el plato está listo, lo sirve. Un solo camarero puede atender muchas mesas en un entorno con mucha espera.
Este modelo se llama entrada y salida no bloqueante (non-blocking I/O). Es lo que hace eficiente a Node.js en las aplicaciones con muchas tareas que implican espera, como una consulta a la base de datos, la lectura de un archivo o una petición a otro servicio.
import { readFile } from "node:fs/promises";
console.log("1. Lectura iniciada");
const icerik = readFile("notlar.txt", "utf8")
.then(metin => console.log("3. Dosya okundu:", metin.length, "karakter"));
console.log("2. Esta línea se ejecuta sin esperar al archivo");Para qué sirve Node.js
La respuesta a la pregunta para qué sirve Node.js es amplia; pero los ámbitos en los que es más fuerte comparten una característica: muchas conexiones simultáneas y mucha espera. Los usos típicos son estos:
- APIs REST y GraphQL: servicios de back-end que ofrecen datos a la aplicación móvil y al front-end web
- Aplicaciones en tiempo real: chat en vivo, notificaciones, seguimiento de pedidos, pantallas de trabajo colaborativo
- Servicios de integración: capas intermedias que transportan datos entre marketplaces, envíos, pagos y sistemas contables
- Receptores de webhooks: endpoints que reciben y procesan los eventos procedentes de sistemas externos
- Herramientas de línea de comandos y procesos de compilación: herramientas para desarrolladores como npm y Vite también funcionan sobre Node.js
- Renderizado en servidor: generación de páginas en el servidor con frameworks como Next.js
Un escenario de la vida real
Piense en un software hotelero: la pantalla de recepción, el formulario de reserva online y los canales de venta deben ver la misma disponibilidad de habitaciones. Cuando entra una reserva, las demás pantallas deben actualizarse en segundos. Este tipo de avisos instantáneos es el campo natural de uso de los servidores basados en eventos, capaces de mantener muchas conexiones abiertas con pocos recursos.
Backend con Node.js y Express.js
En el desarrollo de backend con Node.js, la herramienta de apoyo más conocida es Express.js. Express es un framework web pequeño y flexible que facilita gestionar rutas, peticiones y respuestas, y capas intermedias (middleware). Fastify, NestJS y Koa son otras opciones que se usan con el mismo fin.
El ejemplo siguiente monta un endpoint de API sencillo que devuelve una lista de productos. En un proyecto real, estos datos tendrían que venir de la base de datos, y habría que añadir autenticación y gestión de errores. Si desea conocer el concepto de API en detalle, nuestro artículo qué es una API explica paso a paso la lógica REST.
mkdir urun-api && cd urun-api
npm init -y
npm install expressconst express = require("express");
const app = express();
app.use(express.json());
const urunler = [
{ id: 1, ad: "Aceite de oliva" },
{ id: 2, ad: "Miel de tomillo" }
];
app.get("/api/urunler", (req, res) => {
res.json(urunler);
});
app.listen(3000, () => {
console.log("La API está funcionando en http://localhost:3000");
});Puntos fuertes y débiles
Como toda tecnología, Node.js destaca en determinados trabajos y en otros no es la elección correcta. La decisión debe tomarse según la carga de trabajo de la aplicación, no según eslóganes.
| Ámbitos donde es fuerte | Ámbitos que requieren atención |
|---|---|
| Muchas conexiones simultáneas | Cálculos que exigen mucho procesador |
| Comunicación en tiempo real (WebSocket) | Procesamiento largo de imágenes / vídeo |
| Un solo lenguaje en front-end y back-end | Crecimiento rápido del número de dependencias |
| Un ecosistema de paquetes muy amplio con npm | Seguimiento regular de la seguridad de los paquetes |
| Prototipado rápido | Necesidad de disciplina de arquitectura en proyectos grandes |
Soluciones para el cálculo pesado
Los trabajos que ocupan el procesador durante mucho tiempo pueden delegarse en worker threads dentro de Node.js, en una cola de trabajos aparte o en un servicio escrito en un lenguaje más adecuado para ello. Así la aplicación principal sigue respondiendo a las peticiones de los usuarios.
Seguridad de los paquetes
El ecosistema de npm es una gran ventaja, pero cada dependencia lleva también un riesgo. Elegir paquetes mantenidos y de uso extendido, comprobar con regularidad con npm audit las vulnerabilidades conocidas y mantener el archivo de bloqueo (package-lock.json) en el control de versiones son las medidas básicas.
Node.js en las integraciones
El software de un negocio rara vez funciona solo. La web recibe el pedido, la información del envío llega a la empresa de transporte, la factura entra en el programa contable y se actualiza el stock del marketplace. Las capas intermedias que transportan datos entre estos sistemas encajan muy bien con la naturaleza de Node.js, con mucha espera.
Por ejemplo, el aviso de un pedido procedente de un servicio externo se recibe en un endpoint, se valida, se escribe en la base de datos y se transmite a los sistemas correspondientes. Montar estos flujos de forma fiable exige además detalles como los reintentos, el registro y el aviso de errores; lo difícil de un trabajo de integración no es el código, sino estos detalles.
Explicamos cómo fluyen los datos desde el pedido hasta la entrega, en el caso concreto de las conexiones con marketplaces y envíos, en nuestras páginas de integración con marketplaces y de integración de envíos. Sea cual sea la tecnología con la que se escriba, la medida de una buena integración es que elimina la introducción manual de datos.
Cómo empezar a aprender Node.js
Para empezar basta con instalar desde nodejs.org la última versión LTS adecuada para su sistema operativo. LTS es la línea de versiones que recibe soporte a largo plazo y se recomienda para los proyectos en producción. Tras la instalación, puede verificar la versión en el terminal con los comandos siguientes.
- Empiece por los temas centrales, como el sistema de módulos y las operaciones con archivos y rutas.
- Llegue a un nivel en el que pueda leer con soltura código asíncrono con Promise y async/await.
- Escriba una pequeña API con Express y después conecte una base de datos.
- Aprenda las variables de entorno, la gestión de errores y el registro de eventos.
- Mantenga su código bajo control de versiones y haga commits en pasos pequeños.
node -v
npm -vNo descuide el control de versiones
Seguir el proyecto con Git desde el primer día facilita deshacer un cambio erróneo y trabajar en equipo. Para los fundamentos, puede consultar nuestro artículo qué es Git.
Preguntas frecuentes
01¿Es Node.js un lenguaje de programación?
No. Node.js es un entorno que ejecuta JavaScript fuera del navegador. El lenguaje sigue siendo JavaScript; Node.js le añade capacidades de servidor como el sistema de archivos, la red y la gestión de procesos.
02¿Node.js o PHP: cuál es mejor?
No hay un ganador absoluto. Node.js se desenvuelve bien en trabajos en tiempo real y con mucha espera, y PHP en el alojamiento compartido tradicional y en proyectos de contenido maduros. La experiencia del equipo y el plan de mantenimiento del proyecto suelen ser lo decisivo.
03¿Hace falta un servidor especial para Node.js?
Como las aplicaciones Node.js funcionan como un proceso en ejecución continua, se necesita un servidor, un VPS o una plataforma en la nube que lo admita. Los paquetes de alojamiento compartido clásicos que solo alojan archivos estáticos suelen no bastar.
04¿Qué otros frameworks de Node.js hay además de Express?
Fastify está orientado al rendimiento, y NestJS ofrece una estructura por capas y centrada en TypeScript para equipos grandes. Koa adopta un enfoque más minimalista. La elección debe hacerse según el tamaño del proyecto y los hábitos del equipo.
Al llevar JavaScript al servidor, Node.js permite construir con un solo lenguaje las APIs, las aplicaciones en tiempo real y las capas de integración; para los trabajos de cálculo pesado, en cambio, debe apoyarse en una arquitectura adecuada. Si planea un back-end a medida para su negocio o un flujo de datos entre sistemas, puede conocer nuestras soluciones de software a medida y echar un vistazo a nuestro servicio de integraciones para las conexiones con tiendas y marketplaces.


