Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Criando e Gerenciando Rotas no Express.js | Desenvolvimento de Aplicações Web com Express.js
Quizzes & Challenges
Quizzes
Challenges
/
Desenvolvimento Backend com Node.js e Express.js

bookCriando e Gerenciando Rotas no Express.js

Vamos explorar estes exemplos práticos de criação de rotas no Express.js em mais detalhes.

Rotas Básicas

Criação de uma aplicação simples em Express.js com rotas para diferentes métodos HTTP. Cada rota trata uma solicitação HTTP específica e envia uma resposta ao cliente.

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

app.get('/', (req, res) => {
  res.send('This is the homepage.');
});

app.post('/users', (req, res) => {
  // Handle user creation logic here.
  res.send('User created.');
});

app.put('/users/:id', (req, res) => {
  // Handle user update logic here.
  res.send(`User ${req.params.id} updated.`);
});

app.delete('/users/:id', (req, res) => {
  // Handle user deletion logic here.
  res.send(`User ${req.params.id} deleted.`);
});

app.listen(3000, () => {
  console.log('Server is running on port 3000.');
});
  • Rota GET: Esta rota responde a uma solicitação GET na URL raiz (/). Usuários que acessam a página inicial da aplicação recebem a mensagem "This is the homepage.";
  • Rota POST: Esta rota responde a uma solicitação POST na URL /users. Normalmente utilizada para criar novos registros de usuários. A rota inclui um comentário para a lógica de criação de usuário, que pode ser substituída pela lógica real;
  • Rota PUT: Esta rota responde a uma solicitação PUT na URL /users/:id. Projetada para atualizar registros de usuários com base no parâmetro :id. Assim como a rota POST, inclui um comentário para a lógica de atualização de usuário;
  • Rota DELETE: Esta rota responde a uma solicitação DELETE na URL /users/:id. Utilizada para excluir registros de usuários com base no parâmetro :id. Assim como as outras rotas, inclui um comentário para a lógica de exclusão de usuário.

Nota

Caso haja dúvidas sobre o URL ou queira revisar o conceito, consulte o seguinte artigo: URL vs URI vs URN

Manipulação de Parâmetros de URL

Foco na criação de uma rota que manipula parâmetros de URL. Parâmetros de URL são partes dinâmicas de uma URL que podem ser usadas para passar dados ao servidor. Funcionamento deste exemplo:

app.get('/users/:id', (req, res) => {
  const userId = req.params.id;
  // Fetch user data based on `userId`.
  res.send(`User details for ID ${userId}.`);
});
  • Definição de rota utilizando app.get('/users/:id', ...), onde :id é um parâmetro de URL. Isso significa que, ao acessar uma URL como /users/123, a variável req.params.id conterá o valor 123;
  • Dentro do manipulador de rota, acesso ao parâmetro :id utilizando req.params.id;
  • Possibilidade de substituir o comentário por lógica para buscar dados do usuário com base no userId obtido do parâmetro de URL;
  • Por fim, resposta ao cliente com informações sobre o usuário identificado pelo parâmetro :id.

Ordem e Priorização de Rotas

A ordem em que as rotas são definidas é importante porque o Express utiliza a estratégia de "primeira correspondência vence". A primeira rota que corresponder será executada. Neste exemplo, consideramos um cenário onde há uma rota específica e uma rota coringa:

app.get('/users/:id', (req, res) => {
  const userId = req.params.id;
  // Fetch user data based on `userId`.
  res.send(`User details for ID ${userId}.`);
});

app.get('/users/*', (req, res) => {
  // Handle generic user-related requests.
  res.send('User-related request.');
});
  • A primeira rota, app.get('/users/:id', ...), é uma rota específica que responde a URLs como /users/123. Ela irá tratar requisições com um ID de usuário específico;
  • A segunda rota, app.get('/users/*', ...), é uma rota coringa para requisições genéricas relacionadas a usuários. Ela utiliza um caractere curinga (*) para corresponder a qualquer URL que comece com /users/, como /users/settings.

Neste cenário, a ordem é crucial. A rota específica deve ser definida antes da rota coringa para garantir que ela tenha prioridade. Se você definir a rota coringa primeiro, ela irá corresponder a todas as URLs que começam com /users/, e a rota específica não terá a chance de tratar requisições com um ID de usuário.

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 5

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Awesome!

Completion rate improved to 2.56

bookCriando e Gerenciando Rotas no Express.js

Deslize para mostrar o menu

Vamos explorar estes exemplos práticos de criação de rotas no Express.js em mais detalhes.

Rotas Básicas

Criação de uma aplicação simples em Express.js com rotas para diferentes métodos HTTP. Cada rota trata uma solicitação HTTP específica e envia uma resposta ao cliente.

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

app.get('/', (req, res) => {
  res.send('This is the homepage.');
});

app.post('/users', (req, res) => {
  // Handle user creation logic here.
  res.send('User created.');
});

app.put('/users/:id', (req, res) => {
  // Handle user update logic here.
  res.send(`User ${req.params.id} updated.`);
});

app.delete('/users/:id', (req, res) => {
  // Handle user deletion logic here.
  res.send(`User ${req.params.id} deleted.`);
});

app.listen(3000, () => {
  console.log('Server is running on port 3000.');
});
  • Rota GET: Esta rota responde a uma solicitação GET na URL raiz (/). Usuários que acessam a página inicial da aplicação recebem a mensagem "This is the homepage.";
  • Rota POST: Esta rota responde a uma solicitação POST na URL /users. Normalmente utilizada para criar novos registros de usuários. A rota inclui um comentário para a lógica de criação de usuário, que pode ser substituída pela lógica real;
  • Rota PUT: Esta rota responde a uma solicitação PUT na URL /users/:id. Projetada para atualizar registros de usuários com base no parâmetro :id. Assim como a rota POST, inclui um comentário para a lógica de atualização de usuário;
  • Rota DELETE: Esta rota responde a uma solicitação DELETE na URL /users/:id. Utilizada para excluir registros de usuários com base no parâmetro :id. Assim como as outras rotas, inclui um comentário para a lógica de exclusão de usuário.

Nota

Caso haja dúvidas sobre o URL ou queira revisar o conceito, consulte o seguinte artigo: URL vs URI vs URN

Manipulação de Parâmetros de URL

Foco na criação de uma rota que manipula parâmetros de URL. Parâmetros de URL são partes dinâmicas de uma URL que podem ser usadas para passar dados ao servidor. Funcionamento deste exemplo:

app.get('/users/:id', (req, res) => {
  const userId = req.params.id;
  // Fetch user data based on `userId`.
  res.send(`User details for ID ${userId}.`);
});
  • Definição de rota utilizando app.get('/users/:id', ...), onde :id é um parâmetro de URL. Isso significa que, ao acessar uma URL como /users/123, a variável req.params.id conterá o valor 123;
  • Dentro do manipulador de rota, acesso ao parâmetro :id utilizando req.params.id;
  • Possibilidade de substituir o comentário por lógica para buscar dados do usuário com base no userId obtido do parâmetro de URL;
  • Por fim, resposta ao cliente com informações sobre o usuário identificado pelo parâmetro :id.

Ordem e Priorização de Rotas

A ordem em que as rotas são definidas é importante porque o Express utiliza a estratégia de "primeira correspondência vence". A primeira rota que corresponder será executada. Neste exemplo, consideramos um cenário onde há uma rota específica e uma rota coringa:

app.get('/users/:id', (req, res) => {
  const userId = req.params.id;
  // Fetch user data based on `userId`.
  res.send(`User details for ID ${userId}.`);
});

app.get('/users/*', (req, res) => {
  // Handle generic user-related requests.
  res.send('User-related request.');
});
  • A primeira rota, app.get('/users/:id', ...), é uma rota específica que responde a URLs como /users/123. Ela irá tratar requisições com um ID de usuário específico;
  • A segunda rota, app.get('/users/*', ...), é uma rota coringa para requisições genéricas relacionadas a usuários. Ela utiliza um caractere curinga (*) para corresponder a qualquer URL que comece com /users/, como /users/settings.

Neste cenário, a ordem é crucial. A rota específica deve ser definida antes da rota coringa para garantir que ela tenha prioridade. Se você definir a rota coringa primeiro, ela irá corresponder a todas as URLs que começam com /users/, e a rota específica não terá a chance de tratar requisições com um ID de usuário.

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 5
some-alt