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.

Como usar query params no Express.js?

Os query params no Express.js são utilizados para enviar informações adicionais na URL sem alterar sua estrutura. Eles são úteis para filtragem, ordenação e paginação de dados em APIs.

1. O que são query params?

Query params são passados na URL após um ?, sendo compostos por pares chave=valor.

Exemplo de requisição com query params:

http://localhost:3000/produtos?categoria=eletronicos&preco_max=1000

Aqui, temos dois parâmetros:

  • categoria = eletronicos
  • preco_max = 1000

2. Capturando query params no Express.js

Podemos acessar os query params usando req.query:

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

app.get('/produtos', (req, res) => {
    const { categoria, preco_max } = req.query;
    res.json({
        mensagem: 'Filtrando produtos',
        categoria,
        preco_max
    });
});

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

Se fizermos uma requisição para http://localhost:3000/produtos?categoria=eletronicos&preco_max=1000, a resposta será:

{
    "mensagem": "Filtrando produtos",
    "categoria": "eletronicos",
    "preco_max": "1000"
}

3. Query params opcionais

Se não passarmos um dos parâmetros na URL, o Express simplesmente os ignorará.

Por exemplo, acessando http://localhost:3000/produtos?categoria=livros, teremos:

{
    "mensagem": "Filtrando produtos",
    "categoria": "livros",
    "preco_max": null
}

4. Convertendo valores de query params

Por padrão, os valores dos query params são strings. Para convertê-los:

const precoMax = Number(req.query.preco_max) || 0;

Conclusão

Os query params são uma forma prática de passar informações adicionais para rotas no Express.js. Eles permitem filtrar, ordenar e personalizar respostas de uma API de maneira dinâmica.

O uso de query params é essencial para APIs modernas. Muitos serviços, como e-commerces e redes sociais, utilizam query params para personalizar resultados. Por exemplo, no Google, os parâmetros de busca são passados via query params, permitindo que o servidor entenda a intenção do usuário sem alterar a estrutura da URL.

Em APIs RESTful, a combinação de query params com paginação e ordenação melhora a eficiência e a experiência do usuário. Isso permite que clientes filtrem dados sem necessidade de múltiplos endpoints fixos.

Algumas aplicações:

  • Filtragem de produtos em e-commerces
  • Paginação de resultados em APIs
  • Ordenação de dados por diferentes critérios
  • Personalização de buscas em serviços web
  • Redução do número de endpoints fixos

Dicas para quem está começando

  • Use req.query para capturar query params.
  • Verifique se os valores estão no formato correto antes de usá-los.
  • Query params são opcionais, sempre trate valores ausentes corretamente.
  • Utilize Number(req.query.valor) para converter strings em números.
  • Combine query params com parâmetros de URL para APIs mais flexíveis.

Contribuições de Lucas Fernandes

Compartilhe este tutorial: Como usar query params no Express.js?

Compartilhe este tutorial

Continue aprendendo:

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.

Tutorial anterior

Como receber dados no corpo da requisição (body) no Express.js?

No Express.js, o middleware express.json() permite capturar e processar dados enviados no corpo da requisição em formato JSON.

Próximo tutorial