Next.js vs Node.js: como os dois se relacionam

Next.js vs Node.js: framework vs runtime, explicado | We.Inc

O Node.js roda JavaScript fora do navegador; o Next.js é um framework React que roda sobre ele. Veja a stack camada por camada, um endpoint nos dois e quando usar cada um.

O Node.js é um runtime: o programa que executa JavaScript em um servidor ou no seu notebook. O Next.js é um framework React para criar sites, e as ferramentas de build e o servidor dele rodam no Node.js. Então a escolha raramente é um ou outro. Todo app Next.js precisa do Node.js por baixo, enquanto um app Node.js não precisa envolver o Next.js.

Runtime versus framework

O jeito mais rápido de ver a relação é olhar as camadas por onde uma requisição passa. Clique em cada camada de um app Next.js típico abaixo para ver o que ela faz e quem é responsável por ela.

Perguntas frequentes

O Next.js é backend ou frontend?

Os dois, dentro de limites. Ele renderiza páginas React no servidor, envia as partes interativas ao navegador e permite escrever Route Handlers para endpoints JSON. Ele não foi feito para ser um backend completo para muitos outros clientes.

Preciso aprender Node.js antes do Next.js?

Você precisa do Node.js instalado e de alguma familiaridade com o npm e o terminal. Não é preciso conhecer a fundo o módulo node:http, porque o Next.js cuida do servidor para você.

O Next.js ainda tem um Edge Runtime?

A opção de rota runtime agora indica 'nodejs' como padrão e 'edge' como obsoleto. A documentação pede que você remova o export runtime dos arquivos de rota, então código novo deve assumir o Node.js.

Posso rodar o Next.js com Bun ou Deno?

A documentação de deploy do Next.js lista o Bun como adaptador verificado e o Deno Deploy entre outras plataformas com integração própria. O suporte a recursos varia fora do servidor Node.js, então confira as notas da plataforma.

O Express é o mesmo tipo de coisa que o Next.js?

Mais parecido do que o Node.js, já que os dois são bibliotecas sobre o Node.js. O Express é um kit mínimo de servidor HTTP; o Next.js é um framework completo de sites construído em torno do React.

Node.js em um parágrafo

O que o Next.js adiciona por cima

Escolhendo para um projeto

Servidor Node.js puro

Usa só o módulo nativo node:http. Você decide a porta, os cabeçalhos e o roteamento. Rode com node server.mjs.

Route Handler do Next.js

O caminho do arquivo vira /api/hello e o Next.js roda o servidor. Caminhos desconhecidos recebem automaticamente a página 404 do framework.

Onde o Node.js roda em um projeto Next.js

scripts do package.json

Cada script inicia um processo Node.js: o servidor de desenvolvimento, o build de produção e o servidor de produção.

Navegador

O visitante

Recebe o HTML que o Next.js renderizou no servidor e depois carrega JavaScript só para os Client Components, para que botões e formulários funcionem.

O código do seu app

Você

Páginas, layouts e Route Handlers na pasta app. Isso é React mais algumas convenções do Next.js, escrito em JavaScript ou TypeScript.

O framework

Mapeia pastas para URLs, renderiza Server Components, empacota o código do cliente e roda o servidor de produção iniciado pelo next start.

O runtime

Executa todo o JavaScript acima no servidor: o build, o servidor de desenvolvimento e cada requisição em produção.

Sistema operacional

Sua hospedagem

macOS, Windows, Linux ou um container. O Next.js indica macOS, Windows incluindo WSL, e Linux como suportados para desenvolvimento.

As camadas de um app Next.js

Escolha uma camada

Responsável: {v}

Camada {n} de {v}, de cima para baixo

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

Relacionados: Guias

Produto

Para quem é

Recursos

Recursos

Empresa

Mapa do site