‫Instrutor: Nas primeiras palestras,
‫espero que você tenha começado a obter
‫os fundamentos do desenvolvimento Express.
‫E agora é o momento perfeito para mergulhar um pouco
‫mais fundo em como
‫o Express funciona e, para isso, precisamos falar
‫sobre middleware e o ciclo de solicitação-resposta.
‫Portanto, a essência do desenvolvimento do
‫Express é
‫entender e usar o ciclo de solicitação-resposta.
‫Então, eu quero deixar essa ideia
‫bem clara de uma forma visual neste vídeo.
‫Portanto, para iniciar o ciclo de
‫solicitação-resposta, o aplicativo Express recebe uma solicitação quando alguém acessa um
‫servidor para o qual criará um objeto
‫de solicitação e resposta.
‫Esses dados serão então usados
‫e processados para gerar e enviar de volta uma resposta significativa.
‫Agora, para processar esses dados,
‫no Express usamos algo chamado middleware, que
‫pode manipular a solicitação ou o objeto de resposta.
‫Ou realmente execute qualquer outro código que quisermos.
‫Portanto, o middleware nem sempre precisa
‫ser apenas sobre a solicitação ou o objeto
‫de resposta, mas geralmente é principalmente sobre a solicitação.
‫E, na verdade, já usamos middleware antes.
‫Usamos Express dot JSON para obter acesso ao corpo da solicitação no
‫objeto da solicitação.
‫Lembre-se disso?
‫Agora é chamado de middleware, lembre-se
‫porque é uma função que é executada no meio, ou
‫seja, no meio do recebimento da solicitação
‫e do envio da resposta.
‫E na verdade, podemos dizer que no
‫Express, tudo é middleware.
‫Até mesmo nossas definições de rota.
‫Então, novamente, mesmo quando definimos nossas rotas, podemos
‫pensar nas funções do manipulador de rotas que escrevemos como
‫funções de middleware.
‫Eles são simplesmente funções
‫de middleware que são executadas apenas para determinadas rotas.
‫OK?
‫Agora, alguns exemplos de middleware são Express dot JSON, que também
‫é chamado de analisador de corpo,
‫e que já usamos antes.
‫Ou alguma funcionalidade de registro
‫ou configuração de alguns cabeçalhos http específicos.
‫As possibilidades são infinitas com middleware.
‫Tudo bem, e agora em termos mais
‫técnicos, dizemos que todo o middleware
‫que usamos em
‫nosso aplicativo é chamado de pilha de middleware.
‫O que é muito importante ter em mente
‫aqui é que a ordem do middleware na
‫pilha é realmente definida pela ordem em
‫que são definidos no código.
‫Portanto, um middleware que aparece primeiro no
‫código é executado antes do que aparece depois.
‫Portanto, a ordem do código é muito importante no Express.
‫OK?
‫Agora, você pode pensar em todo o processo assim,
‫nosso objeto de solicitação e
‫resposta que foi criado
‫no início passa por cada middleware onde são processados
‫ou onde apenas algum outro código é executado.
‫Então, ao final de cada função de middleware, uma
‫próxima função é chamada, que é
‫uma função à qual temos acesso em
‫cada função de middleware.
‫Assim como os objetos de solicitação e resposta.
‫E é claro que veremos isso em código no próximo vídeo.
‫Portanto, quando chamamos a próxima
‫função, o próximo middleware na pilha será executado
‫exatamente com o mesmo objeto de solicitação e resposta.
‫E isso acontece com todos os middlewares
‫até chegarmos ao último.
‫E assim,
‫o objeto inicial de solicitação e
‫resposta passa por cada middleware passo a passo.
‫E você pode pensar em
‫todo esse processo como uma espécie de pipeline por onde nossos
‫dados passam, da mesma forma que foram canalizados da solicitação à resposta final.
‫Tudo bem?
‫Agora, sobre a última função de middleware,
‫geralmente é um manipulador de rota exatamente como codificamos antes.
‫Portanto, neste manipulador, não chamamos a próxima função para
‫mover para o próximo middleware.
‫Em vez disso, finalmente enviamos os dados de
‫resposta de volta ao cliente.
‫E
‫assim terminamos o chamado ciclo pedido-resposta.
‫Portanto, o ciclo de solicitação-resposta é realmente tudo
‫o que falamos aqui juntos.
‫Ele começa com a solicitação de entrada
‫e, em seguida, executa todo o middleware na pilha de
‫middleware passo a
‫passo e, por fim, envia a resposta para encerrar o ciclo.
‫Então você vê, realmente não é complicado.
‫Na verdade, é apenas um processo linear.
‫Mas eu gostaria que alguém tivesse me mostrado
‫algo assim quando eu estava aprendendo a construir aplicativos Express.
‫Quer dizer, eu
‫poderia construí-los, mas no início eu realmente
‫não entendia todo esse ciclo de solicitação-resposta como este.
‫Foi muito confuso.
‫É por isso que estou mostrando isso,
‫porque acredito que será muito, muito mais fácil para
‫você entrar no curso
‫agora, depois de entender exatamente como funcionam os aplicativos Express.