Você está na página 1de 2

10/03/2020 AVA | TreinaWeb

19% Express - Otimização de aplicações Node.js

Criando um Middleware

Para entendermos melhor o que é um middleware, vamos logo criar um para vê-
lo em prática.

Você vai ver que não é nada de outro mundo, mas são muito úteis.

Após os usos do BodyParser, insira o seguinte código:

1 function myMiddleware(req, res, next){


2 req.body.message = "Intercepted by middleware";
3 next();
4 }
5 app.use(myMiddleware);

Criamos uma função chamada “myMiddleware()”. Assim como as rotas, os


middlewares também recebem os objetos Requisition e Response. Os
middlewares recebem um terceiro parâmetro, a função “next()”.

Lembra que tínhamos usado dois middlewares do BodyParser? O que interpreta


JSON e o que interpreta formulários?

Então, os middlewares são funções que são executadas uma após a outra.

A função “next()” serve para indicar que o processo do nosso middleware já


acabou, e então, chamar o middleware seguinte. Se não executarmos a função
“next()” no nal da função, nossa requisição não prosseguirá para o próximo
middleware.

E no nal, utilizamos a função “app.use()“, onde passamos o nosso middleware.


A função “app.use()” serve para registrarmos um middleware no Express.

Agora faça a mesma requisição que zemos na aula anterior, do tipo


“application/json”.

https://www.treinaweb.com.br/ava/#/X0qvwToYnlhJVi3M/aula/4DyANoDl/gDg7KYDz/apostila 1/2
10/03/2020 AVA | TreinaWeb

19% Express - Otimização de aplicações Node.js

Temos agora o JSON que enviamos, o campo que inserimos dentro da rota,
“reqType”, e um novo campo, “message”, que inserimos pelo nosso middleware.

Middlewares são, portanto, simples funções que recebem os objetos Requisition


e Response, e nós podemos utilizá los para interceptar uma requisição e
executar uma ação. No exemplo do BodyParser interpretamos JSON e
formulários, e nosso middleware injetou um campo “message”.

Podemos utilizar middlewares também para criar logs de requisições, veri car
se o usuário está autenticado para poder fazer aquela requisição, rodar algum
código para garantir a segurança dos dados enviados pelo cliente, etc.

https://www.treinaweb.com.br/ava/#/X0qvwToYnlhJVi3M/aula/4DyANoDl/gDg7KYDz/apostila 2/2

Você também pode gostar