NestJS vs Next.js: papéis diferentes, muitas vezes no mesmo projeto

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

NestJS cria APIs de servidor em Node.js; Next.js cria sites React com um pouco de código de servidor. Veja o mesmo endpoint nos dois, como eles trabalham juntos e quando você precisa de cada um.

NestJS e Next.js não são rivais. NestJS é um framework para aplicações Node.js do lado do servidor: controllers, módulos e injeção de dependência para APIs. Next.js é um framework React para criar páginas web, com Route Handlers para trabalho leve de backend. Apps pequenos podem viver inteiros no Next.js; sistemas maiores muitas vezes colocam uma API NestJS por trás de um front-end Next.js.

Para que serve cada framework

Abaixo está um endpoint, uma lista de gatos em GET /cats, escrito como um controller NestJS e como um Route Handler do Next.js. Troque de exemplo para ver uma rota POST e a configuração que permite a uma página Next.js chamar uma API NestJS.

Perguntas frequentes

O Next.js pode substituir o NestJS?

Para um app pequeno, muitas vezes sim. Os Route Handlers cobrem GET, POST, PUT, PATCH, DELETE, HEAD e OPTIONS com as APIs Web Request e Response. O NestJS justifica seu lugar quando o backend cresce: muitos módulos, jobs em segundo plano, vários clientes como apps mobile e um time que quer uma estrutura imposta.

O NestJS consegue renderizar páginas React?

Ele não foi feito para isso. O NestJS devolve dados, com objetos serializados em JSON por padrão. Use Next.js, ou outro framework de front-end, para as páginas.

Preciso de TypeScript para usar NestJS?

O NestJS é feito com TypeScript e tem suporte completo a ele, e a documentação diz que você ainda pode escrever JavaScript simples. Quase todo exemplo e guia usa TypeScript, então conte com usá-lo.

Os dois devem ficar no mesmo repositório?

Um monorepo com dois apps e um pacote de tipos compartilhado funciona bem para um time. Repositórios separados servem para times separados, com calendários de release próprios.

Qual devo aprender primeiro?

Se você quer colocar um site no ar, comece pelo Next.js. Aprenda NestJS quando estiver criando uma API da qual vários front-ends ou serviços dependem.

O que o NestJS dá a um backend

O que o Next.js dá a um site

Como eles se encaixam

Crie os dois projetos

Scaffold de uma API NestJS e de um site Next.js

Instala a ferramenta de linha de comando do Nest, cria a API e depois cria o site em uma pasta irmã.

GET /cats

No NestJS, o prefixo @Controller('cats') e o @Get() montam o caminho, e o controller é registrado em um módulo. No Next.js, o caminho da pasta é a URL e o nome da função exportada é o método.

POST /cats

O NestJS interpreta o corpo JSON para você com @Body() e responde a um POST com status 201 por padrão. Um Route Handler do Next.js lê o corpo com request.json() e define o status por conta própria.

Usando os dois

O NestJS passa para a porta 3001 e permite a origem do site. A página Next.js é um Server Component, então o fetch roda no servidor e API_URL continua privada.

Escolha um exemplo

NestJS

Copiar NestJS

Exemplo {n} de {v}

Comece grátis · Sem cartão de crédito

Relacionados: Guias

Produto

Para quem é

Recursos

Recursos

Empresa

Mapa do site