XP 0

Buscando um produto

Parâmetro de rota + WHERE

Agora o :id da rota vira o WHERE do SQL — front e banco se conectam:

app.get("/produtos/:id", async function (req, res) {
  const p = await db.query("SELECT * FROM produtos WHERE id = $1", [req.params.id]);
  res.json(p);
});

O $1 é um espaço reservado: o valor de req.params.id entra ali com segurança.

⚠️ Por que $1 e não juntar o texto na mão? Colar o valor direto na consulta abre a porta para o SQL Injection — um ataque em que um usuário mal-intencionado injeta comandos SQL. Os $1, $2 (parâmetros) blindam contra isso. É segurança básica, não opcional.

Pontos-chave

  • :id da rota → WHERE do SQL
    o parâmetro da URL vira o filtro da consulta.
  • $1 (parâmetro seguro)
    encaixa o valor com segurança (evita SQL Injection).