Node.js es un entorno de ejecución (runtime) de JavaScript del lado del servidor. Permite usar este lenguaje fuera del navegador para construir aplicaciones, APIs y servicios.
Está construido sobre el motor V8 de Chrome y lo creó Ryan Dahl en 2009 (fuente: nodejs.org / OpenJS Foundation). Su modelo de E/S no bloqueante (non-blocking I/O) y su bucle de eventos (event loop) lo hacen eficiente para APIs y servicios en tiempo real.
Por qué es eficiente
El modelo tradicional de servidor dedica un hilo a cada petición. Ese hilo se bloquea mientras espera respuestas de la base de datos o del disco.
Node.js invierte el esquema. Un único hilo principal lanza las operaciones lentas y sigue atendiendo otras peticiones. Recoge cada resultado cuando está listo a través del bucle de eventos (event loop).
El resultado es claro: una sola instancia maneja miles de conexiones a la vez con poca memoria. Eso vale siempre que el trabajo sea de entrada y salida (red, ficheros, base de datos) y no de cálculo intensivo de CPU.
Para qué se usa habitualmente
Node.js brilla en varios escenarios:
- APIs REST.
- Aplicaciones en tiempo real: chats, notificaciones y paneles que se actualizan solos.
- Microservicios.
- Procesos de servidor que conectan varios sistemas.
Al compartir lenguaje con el navegador, permite que el mismo equipo trabaje el backend y el frontend sin cambiar de tecnología. El registro npm, su gestor de paquetes, supera los 2 millones de paquetes publicados: el mayor ecosistema de librerías de software (fuente: npm).
¿Dónde no es la mejor opción? En tareas de cálculo pesado y prolongado. Al tener un solo hilo principal, una operación intensiva de CPU bloquea al resto, y ahí conviene otra arquitectura.
Cómo lo usamos en SMedialab
Desplegamos aplicaciones Node.js en nuestros VPS con panel Hestia. Normalmente van detrás de un proxy inverso Nginx que las expone con SSL y reparte el tráfico.
Lo empleamos para tres usos principales:
- APIs que conectan webs de cliente con sus sistemas internos.
- Servicios que necesitan responder en tiempo real.
- Herramientas a medida que automatizan tareas.
Mantenemos cada aplicación con recursos ajustados al uso real. Así el cliente paga el servidor que necesita y no más.
¿Necesitas una aplicación o API a medida sobre un servidor bien gestionado? La desarrollamos dentro del diseño web y la alojamos en nuestro alojamiento web gestionado, sobre hosting en VPS. Escríbenos desde contacto.