Entendendo o express.Router e usando módulos de forma simples

Rodolpho Netto
Dec 26, 2018 · 3 min read

O express.Router nos ajuda a manipular nossas rotas em aplicativos NodeJS, nesse exemplo criaremos rotas de forma modularizada, criando um arquivo para lidar com nossas rotas de produtos e um arquivo para nossa rota de usuarios.

Estrutura dos arquivos

Criamos uma pasta chamada e os arquivos e , esses arquivos serão os responsaveis por manipular nossas rotas.

A pasta abriga os arquivos HTML que as rotas irão servir ao serem chamadas, dentro dela há uma pasta produtos e uma pasta usuarios apenas para organizar melhor

o é nosso arquivo principal, o responsavel por criar o servidor e importar nossos arquivos — — com as rotas

Módulos necessários

Ao criar a pasta principal, deveremos dar o para criar nossa nova aplicação, e após isso para instalarmos nossa dependência do , o framework responsável por facilitar nosso trabalho através do

Criando o servidor

No arquivo vamos criar nosso servidor, para isso usaremos o seguinte código

Criando nossas routes no arquivo produtos.js

Vamos as explicações do que fizemos no arquivo acima, começando nos , primeiro importamos o que é o coração das nossas rotas, feito isso, criamos uma constante "" e atribuímos a ela a função que vai ser exportada e jaja importaremos no para dizer que esse arquivo gerencia nossas rotas para os produtos.

Uma vez os imports realizados (eu sei que não expliquei um ainda, vamos chegar lá!), criaremos nossa primeira rota. Ela será responsável por devolver o arquivo , o conteúdo do arquivo HTML é irrelevante e você pode montar como quiser.

Enviando arquivo HTML como resposta à requisição

Essa é a nossa rota, retirei o trecho do código do arquivo acima para melhor visualização.

Na primeira parte, realizamos um para o diretório dessa forma ao acessarmos localhost:3000 (caminho definido como nosso servidor) usaremos uma função callback passando como parâmetros requisição, responsta e next (não precisaremos do next aqui, resolvi passar apenas como lembrete que ele existe)

Na segunda parte, usamos o como resposta a requiseição, ela é responsavel pela entrega do arquivo HTML. Agora que entra nosso import que ficou para atrás, o , nós importamos essa função do core do NodeJS e usamos para encontrar o arquivo HTML, independente do sistema operacional do nosso servidor (linux e Mac usam / e windows usa \, o que pode dar problema ao "chumbar" o caminho) é uma variavel global do nodeJS e representa o caminho até o arquivo de onde é invocada, dessa forma usamos virgulas para separar as pastas até o arquivo final. Primeiro usamos o para sair da pasta e entramos em , .

O ultimo passo é no final do arquivo exportar a função router com o

Importando em app.js

A importação agora é bem simples, criamos uma constante dando require no arquivo e então usamos — Dessa forma todas as rotas que estão sendo tratadas no arquivo já são validas na nossa aplicação, ao acessarmos teremos acesso ao arquivo produtos.html

Adicionando mais rotas

Podemos adicionar mais rotas, copiando a rota do arquivo produtos, alterando o endereço da requisição e o arquivo da resposta

lembrando que podemos agora adicionar quantas rotas quisermos no arquivo produtos.js e nada mais precisará ser importado no arquivo app.js

Um outro exemplo, criamos o arquivo usuarios.js que trata uma requisção para o endereço

Agora sim precisaremos ir até o arquivo e importarmos o novo arquivo

Criamos a constante e adicionamos app.use() dessa forma todas as rotas criadas nos arquivos e já estão vinculadas ao nosso arquivo principal !

Espero que tenha ficado claro como o funciona de forma a modularizar nossos arquivos de rotas, facilitando o gerenciamento em aplicações mais complexas!

Qualquer coisa, sinta-se livre de conversar comigo no twitter, lembre-se que eu sou apenas um estudante compartilhando aquilo que aprendo =)

https://twitter.com/MetaLcsgo91

OW Interactive

Agência Digital

OW Interactive

We are part of the digital universe, focused on creating and developing interactive experiences by integrating planning, creativity and technology.

Rodolpho Netto

Written by

OW Interactive

We are part of the digital universe, focused on creating and developing interactive experiences by integrating planning, creativity and technology.