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 gete 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.