Boa tarde, pode me explicar como o module.exports reconhece o app ?
Boa tarde, pode me explicar como o module.exports reconhece o app ?
Olá Santi, tranquilo?
Então, na verdade o module.exports
está sendo apenas uma função que recebe um parâmetro app
, de fato ele não conhece, mas espera que seja passado uma instância do express
Por exemplo, em atendimentos.js
poderíamos mudar de app
para servidor
por exemplo;
module.exports = (servidor) => {
servidor.get('/atendimentos', (req, res) => res.send('Você está na rota de atendimentos e está realizando um GET'))
servidor.post('/atendimentos', (req, res) => {
console.log('Atendimento enviado')
console.log(req.body)
res.send('Post atendimento')
})
}
A única questão é que esse parâmetro precisa ser uma instância do express para que exista de fato os métodos get
e post
, caso contrário teremos um erro :)
E ai entra o consign
consign()
.include('controllers')
.into(app)
Para todos nossos controllers
que recebem um app
como parâmetro para funcionar, estamos passando a referência de nosso servidor de fato, dessa forma seria como estívessemos fazendo:
const rotasAtendimentos = require('../controllers/atendimentos');
module.exports = () => {
const app = express()
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: true }))
rotasAtendimentos(app);
return app
}
Mas normalmente terremos vários controllers, e o consign
nos facilita muito a vida nesse sentido :)
Compreendeu? Qualquer coisa estou à disposição!
Abraços e Bons Estudos :)
Foi totalmente claro, abraço. Obrigado.