Parâmetros de Rota no Express com Node.js
Os parâmetros de rota representam segmentos nomeados do URL. Eles não devem ser confundidos com os parâmetros da query string. Um exemplo da query string:
localhost:3000/about/user?id=3&name=Tome
Aqui, os parâmetros da query string são o que vem depois do ponto de interrogação: id=3&name=Tome
. A parte restante, que vem antes do ponto de interrogação, pode conter parâmetros de rota.
O nome do parâmetro deve incluir caracteres do intervalo [A-Za-z0-9_]
. Na definição da rota, os parâmetros são precedidos por dois-pontos:
const express = require("express");
const app = express();
app.get("/products/:productId", function (request, response) {
response.send("productId: " + request.params["productId"]);
});
app.listen(3000, () => console.log("Servidor iniciado em http://localhost:3000"));
Neste caso, o parâmetro é chamado productId
. Através da coleção request.params
, podemos obter todos os parâmetros e, em particular, o valor do parâmetro productId
.
Se precisarmos passar um valor para este parâmetro, ele é especificado como o último segmento na string de consulta:
Podemos usar combinações mais complexas de parâmetros:
app.get("/categories/:categoryId/products/:productId", function (request, response) {
const catId = request.params["categoryId"];
const prodId = request.params["productId"];
response.send(`Categoria: ${catId} Produto: ${prodId}`);
});
Mais um exemplo:
app.get("/book/:pageName.:pageExt", function (request, response) {
const pageName = request.params["pageName"];
const pageExt = request.params["pageExt"];
response.send(`Arquivo solicitado: ${pageName}.${pageExt}`);
});