‫Tutor: Nessa palestra, as coisas vão
‫começar a ficar um pouco mais avançadas.
‫E isso porque agora criaremos vários roteadores e
‫usaremos um processo chamado montagem.
‫Então, vamos ver como tudo isso funciona.
‫Agora, antes de fazer qualquer coisa, vamos
‫ter em mente que o objetivo final será separar todo
‫o código que temos neste arquivo em vários arquivos.
‫Então o que eu quero é ter
‫um arquivo que contenha apenas todas essas rotas, então
‫quero ter outro arquivo,
‫que tenha as rotas para os usuários.
‫Também quero ter um arquivo que contenha os manipuladores
‫apenas para os usuários e também um
‫arquivo que conterá todos os manipuladores dos passeios, ok?
‫E isso é realmente o que
‫faremos na próxima aula.
‫Mas, para fazer isso, agora
‫precisamos criar um roteador separado para cada
‫um de nossos recursos.
‫Então, vamos voltar às nossas rotas aqui e agora, podemos
‫dizer que todas as nossas rotas, essas quatro rotas aqui, podemos
‫dizer que estão
‫todas no mesmo roteador, ok?
‫E o roteador, é esse objeto de aplicativo.
‫Mas se quisermos separar essas rotas
‫em arquivos diferentes, então, novamente, um arquivo
‫para essas duas rotas
‫e um arquivo para essas duas rotas,
‫então a melhor coisa a fazer é criar um
‫roteador para cada um dos recursos, certo?
‫E então, é assim que vamos fazer.
‫Na verdade não é tão complicado,
‫mas você terá
‫que entender alguns conceitos, certo?
‫Então, vamos começar
‫dizendo, const tourRouter é igual a express. Roteador.
‫Certo, assim,
‫criamos um novo roteador e o salvamos nesta variável.
‫Tudo bem, então agora vamos usar esse
‫roteador para essas duas rotas.
‫Então, aqui nós o usamos em vez do app.
‫Tudo bem, agora temos dois roteadores e, em seguida,
‫rotear e, é claro, obter e postar
‫as rotas nesse roteador.
‫Agora, como realmente conectamos esse novo roteador
‫ao nosso aplicativo?
‫Bem, vamos usá-lo como middleware, certo?
‫E isso é porque, este novo roteador de ferramenta modular aqui, é
‫na verdade um middleware real, certo?
‫E então podemos
‫dizer, (digitação no teclado), app. usar, e então a rota, mas vamos deixar isso para depois.
‫Então podemos usar o tourRouter em nosso aplicativo e onde
‫queremos usar o tourRouter?
‫Bem, queremos usá-lo
‫em / api / version one / tours, ok?
‫Então, novamente, este tourRouter aqui, é um middleware real.
‫E queremos usar esse middleware para essa rota específica.
‫Ok, então usamos o app. usar e
‫especificar a função de middleware, que é esse
‫roteador, então especificamos a rota e a URL, para
‫a qual, na verdade, queremos usar esse middleware, ok?
‫E
‫assim, criamos basicamente um subaplicativo, ok?
‫Agora, há apenas
‫uma coisa que realmente precisamos
‫mudar aqui, que são essas rotas aqui, certo?
‫Deixe-me mudar isso aqui e depois explicar por
‫que tem que ser assim.
‫Então aqui, queremos apenas a
‫rota, e aqui, queremos apenas a id, ok?
‫Agora, por que isso?
‫Bem, é porque esse middleware
‫tourRouter, só roda nessa rota aqui mesmo, ok?
‫E assim que estivermos
‫no roteador, já estaremos nesta rota.
‫Então, em nosso tourRoute, e nessa primeira rota que
‫tínhamos que fazer antes, só queremos executá-la como,
‫api / version one / tours
‫e é isso que essa rota significa agora, ok?
‫Portanto, é basicamente a rota dessa URL, certo?
‫Então esse é um pequeno mini-aplicativo, certo?
‫Então, na verdade, quando criamos um sistema
‫de roteador como este, dizemos que criamos um pequeno subaplicativo
‫para cada um desses recursos, certo?
‫Então esse é o roteiro do ou mini
‫aplicativo, que é de novo, em / tours, tá bom?
‫E então a segunda rota, é em / id, certo?
‫E isso porque,
‫antes, era nas turnês / id, então era tudo isso.
‫Assim, mas agora, este URL aqui já
‫está em nosso tipo de rota primária aqui, certo?
‫Então, digamos que temos uma solicitação de
‫entrada agora para / api / version one / tours / version id.
‫Portanto, a solicitação vai para a pilha de middleware
‫e quando atinge essa linha de código
‫aqui, ela vai corresponder a esta URL aqui, certo?
‫Portanto, ele corresponderá a esta rota e, portanto,
‫uma ou duas funções de middleware de roteador serão executadas.
‫Então, ou dois roteadores é esse subaplicativo que criamos, que
‫por sua vez tem suas próprias rotas, certo?
‫E se a solicitação foi por / id,
‫bem, então dentro do
‫nosso mini aplicativo, acertará essa rota aqui, certo?
‫E, por
‫fim, é claro, ele executará uma dessas
‫alças aqui, dependendo do método usado.
‫Espero que tenha feito sentido.
‫E então, vamos prosseguir e fazer
‫o mesmo para todos os usuários, certo?
‫Então, vou seguir em frente e criar outro roteador aqui,
‫(digitação no teclado) chamado userRouter, e então, como
‫antes, é expresso. Roteador
‫não é assim, sim.
‫Ok, então use um roteador,
‫e então precisamos fazer o mesmo processo aqui.
‫E por falar nisso, isso se chama montagem do roteador, ok?
‫Montar um novo roteador em uma rota, basicamente, certo?
‫Portanto, agora temos usuários e aqui o usuário.
‫E, na verdade, montar os
‫roteadores tem que vir depois de todas
‫essas definições ou pelo menos depois de declarar uma variável, certo?
‫Portanto, não podemos usar
‫os roteadores antes de realmente os declararmos.
‫Ok, agora tudo o que precisamos fazer
‫é ir em frente e também alterar as rotas aqui.
‫E assim como antes, se agora houver uma
‫solicitação para / api / versão um / usuários / id,
‫a solicitação entrará na pilha de middleware
‫e quando atingir este middleware
‫aqui, executará o roteador
‫do usuário, porque esta rota aqui é combinados, ok?
‫E então ele entra no
‫roteador do usuário e
‫de novo, assim como antes, esse erro é a rota basicamente em
‫nosso subaplicativo, e isso aqui é a URL / id inteira, ok?
‫Isso faz sentido?
‫Portanto, antes de
‫prosseguirmos, vamos realmente testar se isso ainda funciona.
‫Então, vamos ver todos os passeios aqui e, de fato, acontecem.
‫Então tudo ainda funciona da mesma forma com os
‫usuários e também funciona.
‫Então fizemos todas essas mudanças e decodificamos os
‫trabalhos, o que significa que nossos dois novos roteadores estão montados corretamente.
‫Tudo bem, e com isso, estamos prontos para separar
‫ou diferentes roteadores agora em arquivos diferentes.
‫E isso faremos bem na próxima palestra.