Middleware em Express.js: Lidando com Requisição Intermediária

Introdução a Middleware em Express.js

Middleware in Express.js é um conceito poderoso que permite executar funções em uma ordem específica durante o ciclo de vida de solicitação-resposta. Essas funções podem executar várias tarefas, como autenticação, registro, validação de dados e muito mais. Middleware as funções são executadas sequencialmente e cada uma middleware tem acesso aos objetos request e response, bem como à next função, que passa o controle para a próxima middleware na pilha.

Por que usar Middleware ?

Middleware é essencial para modularizar a funcionalidade de seu aplicativo e aprimorar sua capacidade de manutenção. Ele permite que você mantenha seus manipuladores de rota limpos e focados em tarefas específicas enquanto descarrega preocupações comuns ou transversais para middleware funções. Essa separação de preocupações promove a reutilização de código e torna sua base de código mais organizada.

Criando e usando Middleware

Para criar middleware em Express.js, você define uma função que recebe três parâmetros: request, response e next.

Aqui está um exemplo básico de middleware que registra cada solicitação recebida:

const logMiddleware =(req, res, next) => {  
  console.log(`Received a ${req.method} request at ${req.url}`);  
  next(); // Pass control to the next middleware  
};  
  
app.use(logMiddleware);  

Você pode usar o app.use() método para aplicar middleware globalmente a todas as rotas ou pode usá-lo seletivamente para rotas específicas.

Ordem de Middleware Execução

Middleware as funções são executadas na ordem em que são definidas usando app.use().

Por exemplo:

app.use(middleware1);  
app.use(middleware2);  

Nesse caso, middleware1 será executado antes middleware2 para todas as solicitações recebidas.

Tratamento de erros em Middleware

Se ocorrer um erro em uma middleware função, você poderá passar o erro para a next função e Express.js pulará automaticamente para tratamento de erros middleware.

Aqui está um exemplo:

const errorMiddleware =(err, req, res, next) => {  
  console.error(err);  
  res.status(500).send('Something went wrong!');  
};  
  
app.use(errorMiddleware);  

Usando Middleware para autenticação

Middleware é comumente usado para implementar autenticação e autorização em aplicativos da web. Por exemplo, você pode criar uma middleware função que verifica se um usuário está autenticado antes de permitir o acesso a determinadas rotas:

const authenticateMiddleware =(req, res, next) => {  
  if(req.isAuthenticated()) {  
    return next(); // User is authenticated, proceed to the next middleware  
  }  
  res.redirect('/login'); // User is not authenticated, redirect to login page  
};  
  
app.get('/profile', authenticateMiddleware,(req, res) => {  
  res.send('Welcome to your profile!');  
});  

 

Conclusão

Middleware in Express.js é uma ferramenta vital para gerenciar e aprimorar a funcionalidade de seus aplicativos da web. Ao criar middleware funções reutilizáveis, você pode simplificar seu código, modularizar preocupações e melhorar a capacidade de manutenção geral de seus projetos. Desde a manipulação da autenticação até o registro e o gerenciamento de erros, middleware permite que você crie aplicativos da Web robustos e seguros com eficiência.