7.7. Trabalhando com rotas no ExpressJS: Organizando as rotas em arquivos separados

Página 53

Uma das principais vantagens de usar o ExpressJS quando se trabalha com NodeJS é a sua facilidade para lidar com rotas. No entanto, à medida que a sua aplicação cresce, o gerenciamento de rotas pode se tornar uma tarefa árdua. Felizmente, o ExpressJS permite organizar as rotas em arquivos separados, o que torna o processo muito mais gerenciável e escalável.

Para começar, vamos entender o que são as rotas. As rotas são uma parte fundamental de qualquer aplicação web. Elas são responsáveis por direcionar os usuários para diferentes partes da aplicação, com base na URL e no método do HTTP. Por exemplo, se um usuário acessar 'www.seusite.com/contato', a rota '/contato' será responsável por mostrar a página de contato.

No ExpressJS, as rotas são definidas usando o método 'app.route()', onde 'app' é uma instância do Express. Por exemplo, a rota '/contato' pode ser definida da seguinte maneira:

app.get('/contato', function(req, res){
  res.send('Página de contato');
});

Isso funciona bem para aplicações pequenas, mas à medida que a aplicação cresce e mais rotas são adicionadas, o arquivo principal do servidor pode se tornar muito grande e difícil de gerenciar. É aqui que a organização das rotas em arquivos separados se torna útil.

Para organizar as rotas em arquivos separados, você precisa criar um novo arquivo para cada conjunto de rotas. Por exemplo, você pode ter um arquivo 'contato.js' para todas as rotas relacionadas ao contato, um arquivo 'usuarios.js' para todas as rotas relacionadas aos usuários, e assim por diante.

Em cada arquivo de rota, você precisa criar uma nova instância do roteador Express usando 'express.Router()'. Depois disso, você pode definir as rotas como faria normalmente. Por exemplo, o arquivo 'contato.js' pode se parecer com isto:

var express = require('express');
var router = express.Router();

router.get('/', function(req, res){
  res.send('Página de contato');
});

module.exports = router;

Observe que no final do arquivo, nós exportamos o roteador usando 'module.exports'. Isso permite que nós importemos o roteador em nosso arquivo principal do servidor.

Em nosso arquivo principal do servidor, nós podemos importar o roteador usando 'require()'. Depois disso, nós podemos usar o método 'app.use()' para adicionar as rotas ao nosso aplicativo. Por exemplo:

var express = require('express');
var app = express();

var contatoRota = require('./contato');

app.use('/contato', contatoRota);

Isso adicionará todas as rotas definidas em 'contato.js' ao nosso aplicativo, sob o caminho '/contato'. Portanto, a rota que definimos em 'contato.js' como '/' agora será acessível em '/contato'.

Organizar as rotas desta maneira tem várias vantagens. Primeiro, ele torna o código muito mais limpo e fácil de gerenciar. Segundo, ele permite que você divida sua aplicação em módulos lógicos, o que é uma prática de programação boa e recomendada. Terceiro, ele torna sua aplicação mais escalável, pois você pode facilmente adicionar mais arquivos de rota à medida que sua aplicação cresce.

Em resumo, trabalhar com rotas no ExpressJS é uma tarefa simples, mas que pode se tornar complexa à medida que sua aplicação cresce. Felizmente, o ExpressJS oferece uma maneira fácil de organizar suas rotas em arquivos separados, tornando o processo muito mais gerenciável e escalável.

Now answer the exercise about the content:

Qual é a principal vantagem de organizar as rotas em arquivos separados no ExpressJS?

You are right! Congratulations, now go to the next page

You missed! Try again.

Next page of the Free Ebook:

547.8. Trabalhando com rotas no ExpressJS: Utilizando verbos HTTP nas rotas (GET, POST, PUT, DELETE)

Earn your Certificate for this Course for Free! by downloading the Cursa app and reading the ebook there. Available on Google Play or App Store!

Get it on Google Play Get it on App Store

+ 6.5 million
students

Free and Valid
Certificate with QR Code

48 thousand free
exercises

4.8/5 rating in
app stores

Free courses in
video, audio and text