Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

A ordem poderia ser outra?

A ordem poderia ser a seguinte:

1.1
 2.1
 listagem livros
 1.2
 2.2

Entendo que primeiro seria executado o console.log('1.1') do primeiro middleware. Depois a função next() do primeiro middleware passaria para a execução do console.log('2.1') do segundo middleware. Como não há outros middleware para serem executados, a rota seria ativada e o console.log('listagem livros') executado.

Não entendi o porquê do controle ter voltado para o segundo middleware executando o console.log('2.2') ao invés de ter voltado para o primeiro middleware e executado antes o console.log('1.2').

2 respostas
solução!

Boa noite, Joaquim! Como vai?

Veja que nessa aula aos 1:15, eu faço uma analogia comparando os middlewares com portais.

Para vc entender de forma clara pq a ordem é a mostrada no exercício vc precisa visualizar a questão justamente usando essa analogia.

Imagine que vc é a requisição e está entrando num corredor que te levará até a rota que vc deseja executar. Contudo, antes de atingir a rota, vc passa pelo portal 1 ( middleware 1 ) e, em seguida, pelo portal 2 ( middleware 2 ) para somente após isso chegar na rota que vc desejava.

Quando vc estiver voltando com a resposta da execução da rota, vc terá que passar pelo mesmo corredor só que agora no sentido inverso! Portanto, vc irá passar pelo portal 2 ( middleware 2 ) e depois pelo portal 1 ( middleware 1 ). Gerando assim a saída que é obtida no exercício!

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Esclareceu bem! Muito boa essa analogia com os portais em um corredor!