NestJS vs Next.js: tareas distintas, a menudo en el mismo proyecto

NestJS vs Next.js: ¿framework de backend o framework de React? | We.Inc

NestJS crea APIs de servidor en Node.js; Next.js crea sitios web en React con algo de código de servidor. Mira el mismo endpoint en ambos, cómo trabajan juntos y cuándo necesitas cada uno.

NestJS y Next.js no son rivales. NestJS es un framework para aplicaciones Node.js del lado del servidor: controladores, módulos e inyección de dependencias para APIs. Next.js es un framework de React para crear páginas web, con Route Handlers para trabajo ligero de backend. Las apps pequeñas pueden vivir enteras en Next.js; los sistemas más grandes suelen poner una API en NestJS detrás de un front end en Next.js.

Para qué sirve cada framework

Abajo tienes un endpoint, una lista de gatos en GET /cats, escrito como controlador de NestJS y como Route Handler de Next.js. Cambia de ejemplo para ver una ruta POST y la configuración que permite a una página de Next.js consumir una API de NestJS.

Preguntas frecuentes

¿Puede Next.js sustituir a NestJS?

En una app pequeña, a menudo sí. Los Route Handlers cubren GET, POST, PUT, PATCH, DELETE, HEAD y OPTIONS con las APIs Web Request y Response. NestJS se gana su sitio cuando el backend crece: muchos módulos, tareas en segundo plano, varios clientes como apps móviles y un equipo que quiere una estructura impuesta.

¿NestJS puede renderizar páginas de React?

No está pensado para eso. NestJS devuelve datos, con los objetos serializados a JSON por defecto. Usa Next.js, u otro framework de front end, para las páginas.

¿Necesito TypeScript para NestJS?

NestJS está hecho con TypeScript y lo soporta por completo, y la documentación dice que aún puedes escribir JavaScript normal. Casi todos los ejemplos y guías usan TypeScript, así que cuenta con usarlo.

¿Deben estar los dos en un mismo repositorio?

Un monorepo con dos apps y un paquete de tipos compartido funciona bien para un solo equipo. Los repositorios separados encajan con equipos distintos que tienen sus propios calendarios de publicación.

¿Cuál debería aprender primero?

Si quieres publicar un sitio web, empieza por Next.js. Aprende NestJS cuando estés creando una API de la que dependen varios front ends o servicios.

Lo que NestJS aporta a un backend

Lo que Next.js aporta a un sitio web

Cómo encajan juntos

Crea los dos proyectos

Crea una API en NestJS y un sitio en Next.js

Instala la herramienta de línea de comandos de Nest, crea la API y después crea el sitio en una carpeta hermana.

GET /cats

En NestJS el prefijo @Controller('cats') y @Get() forman la ruta, y el controlador se registra en un módulo. En Next.js la ruta de la carpeta es la URL y el nombre de la función exportada es el método.

POST /cats

NestJS analiza el cuerpo JSON por ti con @Body() y responde a un POST con el estado 201 por defecto. Un Route Handler de Next.js lee el cuerpo con request.json() y fija el estado por su cuenta.

Usar los dos

NestJS pasa al puerto 3001 y permite el origen del sitio. La página de Next.js es un Server Component, así que el fetch se ejecuta en el servidor y API_URL sigue siendo privada.

Elige un ejemplo

NestJS

Copiar NestJS

Ejemplo {n} de {v}

Empieza gratis · Sin tarjeta de crédito

Relacionado: Guías

Producto

Para quién es

Funciones

Recursos

Empresa

Mapa del sitio