Como usar parâmetros de URL nas rotas do Express.js?

Os parâmetros de URL no Express.js permitem capturar valores dinâmicos na rota, facilitando a criação de endpoints personalizados.

Como usar parâmetros de URL nas rotas do Express.js?

No Express.js, os parâmetros de URL permitem capturar valores dinâmicos dentro da rota. Isso é útil para buscar informações específicas, como um usuário por ID.

1. Definindo parâmetros de rota

Para definir um parâmetro na URL, usamos : seguido do nome do parâmetro.

const express = require('express');
const app = express();

app.get('/usuarios/:id', (req, res) => {
    const id = req.params.id;
    res.json({ mensagem: `Usuário com ID: ${id}` });
});

app.listen(3000, () => {
    console.log('Servidor rodando na porta 3000');
});

2. Como funciona o req.params?

No exemplo acima:

  • Se acessarmos http://localhost:3000/usuarios/10, a resposta será:
{
    "mensagem": "Usuário com ID: 10"
}
  • Se acessarmos http://localhost:3000/usuarios/25, a resposta será:
{
    "mensagem": "Usuário com ID: 25"
}

3. Utilizando múltiplos parâmetros

Podemos definir mais de um parâmetro na rota:

app.get('/usuarios/:id/posts/:postId', (req, res) => {
    const { id, postId } = req.params;
    res.json({ mensagem: `Post ${postId} do usuário ${id}` });
});

Acessando http://localhost:3000/usuarios/10/posts/5, a resposta será:

{
    "mensagem": "Post 5 do usuário 10"
}

4. Definindo parâmetros opcionais

Podemos tornar um parâmetro opcional usando ?.

app.get('/produtos/:categoria?/:id?', (req, res) => {
    res.json(req.params);
});

Se acessarmos http://localhost:3000/produtos/eletronicos/30, teremos:

{
    "categoria": "eletronicos",
    "id": "30"
}

Se acessarmos apenas http://localhost:3000/produtos/eletronicos, teremos:

{
    "categoria": "eletronicos"
}

Conclusão

Os parâmetros de URL tornam as rotas mais flexíveis e dinâmicas, permitindo a criação de APIs organizadas e funcionais. Eles são essenciais para recuperar informações específicas dentro da aplicação.

As URLs dinâmicas fazem parte da construção de APIs modernas. No Express.js, o uso de req.params facilita a recuperação de dados sem a necessidade de múltiplas rotas fixas.

Plataformas como Facebook e Twitter utilizam parâmetros de URL para exibir conteúdos personalizados, como perfis de usuários e postagens. Esse conceito é amplamente utilizado para melhorar a experiência do usuário e otimizar a organização dos endpoints.

Algumas aplicações:

  • Recuperação de dados por ID
  • Exibição de perfis de usuários
  • Filtragem de produtos por categoria
  • Criação de URLs amigáveis e dinâmicas
  • Integração com sistemas de gestão

Dicas para quem está começando

  • Use req.params para capturar valores passados na URL.
  • Evite definir muitas rotas fixas, prefira rotas dinâmicas.
  • Para múltiplos parâmetros, utilize req.params.nomeDoParametro.
  • Teste suas rotas com Postman ou Insomnia para validar os dados retornados.
  • Utilize middleware de validação para garantir que os parâmetros sejam válidos antes de processá-los.

Contribuições de Henrique Almeida

Compartilhe este tutorial: Como usar parâmetros de URL nas rotas do Express.js?

Compartilhe este tutorial

Continue aprendendo:

Como lidar com requisições GET e POST no Express.js?

No Express.js, as requisições GET e POST são usadas para recuperar e enviar dados, permitindo a comunicação entre cliente e servidor.

Tutorial anterior

Como usar query params no Express.js?

Os query params no Express.js permitem que clientes passem informações na URL para filtrar e personalizar requisições.

Próximo tutorial