
Acerca de las alternativas a Express, dónde y por qué vale la pena abandonar Express'a y pequeñas mediciones en traducción debajo del corte
Expreso
Express es un framework Node.js simple, bien documentado, altamente compatible y más descargado.
Si intenta buscar en Google cómo hacer un servidor HTTP simple, lo más probable es que la primera solicitud le dé algo como esto:
const server = require('express')({}) server.get('/', (req, res) => { res.send('Hello World!') }); server.listen(3000);
API REST
En la arquitectura de las aplicaciones desarrolladas por las empresas, los servicios REST API y REST siguen desempeñando un papel fundamental, ya que HTTP todavía se utiliza como protocolo principal para la comunicación. Esto significa que un programador que creará una nueva aplicación o microservicio utilizará la API REST en lugar de, por ejemplo, una "cola de eventos".
Con el inicio de la popularidad del uso de microservicios, la API REST se esfuerza por ser lo más pequeña posible y realizar un número mínimo de operaciones. Esto implica que el número de puntos finales en la API desarrollada aumentará en proporción directa al número de microservicios y para cada acción simple habrá su propio punto final. Por ejemplo, para cambiar los datos del usuario en la base de datos, primero se llamará al método / user / search para encontrar la ID del usuario que necesitamos, y solo entonces se llamará al método / user / update con el parámetro que se nos devuelve antes de esta ID, en su lugar para realizar esta operación (Nota Ed.).
Sí, las API REST deben ser rápidas, ¡deben ser rápidas!
Además, al crear una aplicación altamente cargada utilizando la API REST, utilizan cada vez más el patrón de microservicios. Dichas aplicaciones están construidas en API Gateways. La API de Gateway es, de hecho, un servidor proxy al que accede el usuario, y este servidor proxy ya accede al micro servicio menos cargado. Por lo general, la API de Gateway también resuelve pequeñas tareas, como:
- Procesamiento de certificados SSL
- Compartir la carga
- Autorización y Autenticación
- Almacenamiento en caché
- Solicitar compresión de contenido
- ...
Sin embargo, Express es demasiado pesado y lento.
Express es excelente, está lleno de características ... pero también es pesado y lento de usar para pequeños propósitos, como la API REST en micro servicios
La última versión de la biblioteca (4.16.4) depende de 30 módulos integrados, y en el proceso de desarrollo se agregan unos 20 más a este módulo, lo que finalmente hace que la aplicación sea demasiado pesada para usarla como un microservicio.

En comparación con otras bibliotecas, Express es demasiado lento para usar con fines mínimos cuando no tiene que realizar consultas complejas. El siguiente gráfico muestra una comparación de la ejecución de una solicitud simple para un documento JSON.


Las medidas que se muestran en la última imagen no muestran que Express sea lento en general, sino que muestra que necesita duplicar el rendimiento de su procesador para realizar operaciones simples ... Como resultado, el pago mensual por usar AWS, Google Cloud, MS aumentará Azure u otro servicio en la nube que use, y esto se traducirá en un gasto mayor y, a menudo, irrazonable.
Conclusión

Hay muchas formas diferentes de implementar una API REST en Node.js, las siguientes son las adecuadas para usted, según la tarea:
- Si necesita un rendimiento máximo, pero al mismo tiempo costos mínimos, entonces Express definitivamente no es lo que necesita. Echa un vistazo a Fastify .
- Si necesita una biblioteca pequeña con el conjunto mínimo de funciones necesarias, entonces definitivamente debería echar un vistazo a restify , koa , polka o restana