Criando 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 Express.js simples com rotas para diferentes métodos HTTP. Cada rota trata uma requisiçã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 requisiçã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 requisição POST na URL
/users. Normalmente utilizada para criação de novos registros de usuário. A rota inclui um comentário para lógica de criação de usuário, que pode ser substituída pela lógica real; - Rota PUT: Esta rota responde a uma requisição PUT na URL
/users/:id. Projetada para atualização de registros de usuário com base no parâmetro:id. Assim como a rota POST, inclui um comentário para lógica de atualização de usuário; - Rota DELETE: Esta rota responde a uma requisição DELETE na URL
/users/:id. Utilizada para exclusão de registros de usuário com base no parâmetro:id. Assim como as outras rotas, inclui um comentário para lógica de exclusão de usuário.
Nota
Se houver dúvidas sobre a URL ou desejar 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ávelreq.params.idconterá o valor123; - Dentro do manipulador de rota, acesso ao parâmetro
:idutilizandoreq.params.id; - Possibilidade de substituir o comentário por lógica para buscar dados do usuário com base no
userIdobtido 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 correspondente será executada. Neste exemplo, considere um cenário em que 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 é fundamental. A rota específica deve ser definida antes da rota coringa para garantir que 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.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Can you explain more about how route order affects request handling in Express.js?
What happens if I reverse the order of the specific and catch-all routes?
Can you give more examples of using URL parameters in routes?
Awesome!
Completion rate improved to 2.56
Criando 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 Express.js simples com rotas para diferentes métodos HTTP. Cada rota trata uma requisiçã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 requisiçã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 requisição POST na URL
/users. Normalmente utilizada para criação de novos registros de usuário. A rota inclui um comentário para lógica de criação de usuário, que pode ser substituída pela lógica real; - Rota PUT: Esta rota responde a uma requisição PUT na URL
/users/:id. Projetada para atualização de registros de usuário com base no parâmetro:id. Assim como a rota POST, inclui um comentário para lógica de atualização de usuário; - Rota DELETE: Esta rota responde a uma requisição DELETE na URL
/users/:id. Utilizada para exclusão de registros de usuário com base no parâmetro:id. Assim como as outras rotas, inclui um comentário para lógica de exclusão de usuário.
Nota
Se houver dúvidas sobre a URL ou desejar 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ávelreq.params.idconterá o valor123; - Dentro do manipulador de rota, acesso ao parâmetro
:idutilizandoreq.params.id; - Possibilidade de substituir o comentário por lógica para buscar dados do usuário com base no
userIdobtido 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 correspondente será executada. Neste exemplo, considere um cenário em que 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 é fundamental. A rota específica deve ser definida antes da rota coringa para garantir que 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.
Obrigado pelo seu feedback!