Atualizado: 02/01/2025

Router - Node.js

O Router permite definir sub-rotas com seus próprios manipuladores em relação a uma rota principal. Por exemplo, vamos definir a seguinte aplicação:

const express = require("express");
const app = express();
  
app.use("/about", function (_, response) {
  response.send("Sobre o site");
});
  
app.use("/products/create", function (request, response) {
  response.send("Adicionando produto");
});

app.use("/products/:id", function (request, response) {
  response.send(`Produto ${request.params.id}`);
});

app.use("/products/", function (request, response) {
  response.send("Lista de produtos");
});
  
app.use("/", function (request, response) {
  response.send("Página principal");
});

app.listen(3000, () => console.log("Servidor iniciado em http://localhost:3000"));

Aqui temos cinco rotas que são tratadas por diferentes manipuladores. No entanto, três dessas rotas começam com /products e estão relacionadas a funcionalidades de manipulação de produtos (visualização da lista de produtos, visualização de um produto específico por id e adição de produto). O objeto Router permite agrupar essa funcionalidade em um único conjunto, facilitando sua gestão. Vamos reescrever o exemplo anterior utilizando o objeto Router:

const express = require("express");
const app = express();
  
// definindo o Router
const productRouter = express.Router();
  
// definindo rotas e seus manipuladores dentro do router
productRouter.use("/create", function(request, response) {
  response.send("Adicionando produto");
});

productRouter.use("/:id", function(request, response) {
  response.send(`Produto ${request.params.id}`);
});

productRouter.use("/", function(request, response) {
  response.send("Lista de produtos");
});

// associando o router ao endpoint "/products"
app.use("/products", productRouter);
  
app.use("/about", function (request, response) {
  response.send("Sobre o site");
});
  
app.use("/", function (request, response) {
  response.send("Página principal");
});

app.listen(3000, () => console.log("Servidor iniciado em http://localhost:3000"));

Aqui, definimos um objeto productRouter que trata todas as requisições para a rota /products. Esta é a rota principal. No entanto, dentro desta rota principal, há sub-rotas / com seu próprio manipulador, assim como as sub-rotas /:id e /create, que também têm seus próprios manipuladores.

Router no Express e Node.js
O objeto Router no Express e Node.js
Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com