Tutorial de Express.js: crie um servidor Node passo a passo

Tutorial de Express.js

Tutorial de Express.js: rotas, middleware, JSON, Express 5 | We.Inc

Crie um servidor Express 5 passo a passo: rotas, middleware, corpos JSON, arquivos estáticos e um tratador de erros, mais um gerador de servidor inicial e as mudanças da v4 para a v5.

Express é um framework web pequeno para Node.js. Instale com npm install express, crie um app com express(), adicione rotas como app.get('/', handler) e inicie com app.listen(3000). Middleware como express.json() roda antes das suas rotas, e um tratador de erros com quatro argumentos vem por último.

Peças básicas do Express

A maioria dos tutoriais de Express ainda mostra código da versão 4 que quebra ou gera avisos na versão 5, que agora é a instalada por padrão. Este passo a passo usa Express 5 do início ao fim, gera um servidor inicial com as partes que você marcar e termina com uma tabela das mudanças que costumam pegar as pessoas ao atualizar um projeto antigo.

Perguntas frequentes

Qual versão do Node.js o Express 5 exige?

O Express 5 exige Node.js 18 ou mais recente. Se você está preso a um Node mais antigo, fique no Express 4 até poder atualizar o runtime.

Por que req.body está undefined?

Nenhum parser de corpo rodou para essa requisição. Adicione app.use(express.json()) para JSON ou express.urlencoded() para envios de formulário antes das suas rotas, e garanta que o cliente envie um header Content-Type correspondente. No Express 5, um corpo não processado é undefined, e não um objeto vazio.

Como escrevo uma rota curinga no Express 5?

Agora os curingas precisam ter nome. Use app.get('/*splat', handler) em vez de '/*'. Para também cobrir o caminho raiz, envolva em chaves: '/{*splat}'.

O que o next() faz?

Ele passa a requisição para o próximo middleware ou rota que corresponder. Chame next() para continuar, next(err) para pular para os tratadores de erros, ou envie uma resposta para encerrar a cadeia. Esquecer as duas coisas deixa a requisição pendurada.

Ainda devo usar o body-parser?

Não para JSON e dados de formulário. express.json() e express.urlencoded() já vêm embutidos. Observe que no Express 5 a opção extended do parser urlencoded é false por padrão.

Rotas e parâmetros

Middleware em um parágrafo

Configure um projeto

Instalar e rodar

Crie uma pasta, inicialize o package.json, marque-o como um projeto de ES modules e instale o Express.

Rotas em um arquivo próprio

Um router é um mini app. Monte-o sob um prefixo para que todo caminho dentro dele seja relativo a esse prefixo.

Erros async chegam ao tratador de erros

No Express 5, uma promise rejeitada em uma rota é encaminhada para você. O handler de quatro argumentos, registrado por último, a transforma em uma resposta.

Do Express 4 para o 5: o que mudou

O Express oferece codemods para muitas destas mudanças: npx codemod@latest @expressjs/v5-migration-recipe.

Código do Express 4 e o substituto no Express 5

Gerador de servidor inicial

Formato de módulo

ES modules (import)

CommonJS (require)

Incluir

Processamento de corpo JSON

Arquivos estáticos de public/

Rotas de exemplo com um parâmetro de URL

Resposta 404 para caminhos desconhecidos

Tratador de erros

Porta

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

Relacionados: Guias

Produto

Para quem é

Recursos

Recursos

Empresa

Mapa do site