En esta página

Tecnología

Node.js

Node.js ejecuta JavaScript y TypeScript en el servidor. Lo uso para APIs, procesos en segundo plano y servidores en tiempo real, entre ellos un servidor de juego autoritativo que mantiene un único estado compartido para toda una sala de jugadores

Tipo
Tecnología
Sitio oficial
nodejs.org
En mi trabajo
Proyectos 1 · Herramientas 1 · Servicios 3
Publicado

¿Qué es Node.js y qué construyo con él?

Node.js gestiona muchas conexiones abiertas con poca sobrecarga, justo lo que necesitan los productos en tiempo real. Además, el servidor y la interfaz comparten un mismo lenguaje y un mismo conjunto de tipos

Datos clave

Tipo
Entorno de ejecución de JavaScript para servidores, basado en el motor V8 ·
Modelo
asíncrono y orientado a eventos ·

Cómo uso Node.js

  • Un servidor de juego autoritativo. En mi plataforma multijugador, Node.js con Express y Socket.IO es la única fuente de verdad: los móviles envían acciones, el servidor las aplica hasta 60 veces por segundo y envía el estado a la pantalla grande. Un móvil no puede decidir por su cuenta que ha marcado un punto. Lee el caso.
  • APIs y procesos en segundo plano. El backend de mis productos: inicio de sesión, pagos, notificaciones, analítica y tareas programadas, como un informe semanal que se envía a Telegram.
  • Operaciones. En mi propio servidor los procesos de Node.js funcionan con PM2, y una versión nueva tiene que pasar sus comprobaciones de estado antes de recibir tráfico.

Cuándo elijo Node.js y sus límites

Node.js es mi opción por defecto para APIs y servidores en tiempo real: se construye rápido con él, gestiona bien muchas conexiones en espera y comparte tipos con el frontend.

Su punto débil es el cálculo pesado: un cálculo largo bloquea todas las demás peticiones del mismo proceso. Ese trabajo va a un proceso aparte o a un servicio en otro lenguaje. Para el código de aprendizaje automático uso Python, que es donde están las bibliotecas.

Se usa junto con

Fuentes

  1. About Node.js — OpenJS Foundation ·

Contacto

¿Tienes una idea? Hagámosla realidad