Olá! Não entendi muito bem a lógica por trás do que foi feito. Seria possível uma explicação alternativa?
O que entendi até então:
Em custom-express.js, "chamamos" o express pro nosso projeto da seguinte forma:
const express = require('express');
const app = express();
Daí, permitimos a utilização dele em outros arquivos com esse trecho:
module.exports = app
No server.js chamamos a constante 'app' pelo require:
const app = require('./src/config/custom-express');
O arquivo rotas.js também vai usar 'app', então precisamos chama-lo lá também.
A partir daqui, fiquei perdido. Por que estamos importando rotas.js no custom-express.js (trecho abaixo)?
const rotas = require('../app/rotas/rotas.js');
rotas(app);
Por que quando importamos 'app' em rotas.js o código não funcionou como esperado? Entendi que seria o mesmo raciocínio aplicado em server.js (importar um método que foi definido em custom-express.js)
Em server.js, temos:
const app = require('./src/config/custom-express');
app.listen(3000, function(){
console.log('rodando express')
})
Isso funciona!
Mas por que se, em rotas, colocarmos da forma abaixo não funciona?
const app = require('./src/config/custom-express');
app.get('/', function(req, resp) {
resp.send(
`
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<h1> Casa do Código </h1>
</body>
</html>
`
);
});
app.get('/livros', function(req, resp) {
resp.send(
`
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<h1> Listagem </h1>
</body>
</html>
`
);
});