Parâmetros de Query String no Express com Node.js
Uma das formas de enviar dados para uma aplicação é através do uso de parâmetros de query string. A query string é a parte do endereço requisitado que aparece após o ponto de interrogação. Por exemplo, na requisição http://localhost:3000/about?id=3&name=Tom
, a parte id=3&name=Tom
representa a query string.
A query string é formada por parâmetros. Após o nome de cada parâmetro, segue seu valor, separado pelo sinal de igual =
. Os parâmetros são separados entre si pelo sinal de e comercial &
. No endereço acima, são usados dois parâmetros: o parâmetro "id" com valor "3" e o parâmetro "name" com valor "Tom".
No Express, podemos obter os parâmetros da query string através da propriedade query
do objeto request
, que é passado para a função de manipulação da requisição. Por exemplo:
const express = require("express");
const app = express();
app.get("/", function (_, response) {
response.send("<h1>Home Page</h1>");
});
app.use("/about", function (request, response) {
const id = request.query.id;
const userName = request.query.name;
response.send(`<h1>Informações</h1><p>id: ${id}</p><p>name: ${userName}</p>`);
});
app.listen(3000, () => console.log("Servidor iniciado em http://localhost:3000"));
Usando request.query
, podemos receber todos os parâmetros da query string como um objeto JavaScript. Utilizando request.query.nome_do_parametro
, podemos acessar cada parâmetro individualmente.
Obtendo Arrays
De forma similar, podemos obter arrays de dados.
const express = require("express");
const app = express();
app.get("/", function (_, response) {
response.send("<h1>Home Page</h1>");
});
app.use("/about", function (request, response) {
const usernames = request.query.name;
let responseText = "<ul>";
for (let username of usernames) {
responseText += `<li>${username}</li>`;
}
responseText += "</ul>";
response.send(responseText);
});
app.listen(3000, () => console.log("Servidor iniciado em http://localhost:3000"));
Neste caso, será recebido um parâmetro name
que representa um array.
Obtendo Objetos
Também podemos receber objetos, que consistem em múltiplas propriedades:
const express = require("express");
const app = express();
app.use("/about", function (request, response) {
console.log(request.query);
const id = request.query.user.id;
const name = request.query.user.name;
response.send(`<h3>id: ${id} <br> name: ${name}</h3>`);
});
app.listen(3000, () => console.log("Servidor iniciado em http://localhost:3000"));
Neste caso, recebemos um objeto user que contém duas propriedades: id
e name
. Por exemplo, user: { id: "7", name: "Tom" }
.
Para passar propriedades de um objeto na query string, os nomes das propriedades são colocados entre colchetes: user[id]
.