Estou com uma dúvida referente ao express-load, Anteriormente o código para carregar as rotas, passamos a instancia app (do express) para classe responsável do produto. app.js
var app = require('./config/express')();
var rotasProdutos = require('./app/routes/produtos')(app); //passamos aui
app.listen(3000,functon(){
console.log("servidor rodando";)
});
em produto.js, pegamos a app pelo parâmetro da função.
module.exports = function(app){
app.get('/produtos', function(req, resp){
var connection = app.infra.connectionFactory();
var produtosDAO = new app.infra.ProdutosDAO(connection);
produtosDAO.lista(function(erros, resultados){
resp.format({
html: function(){
resp.render('produtos/lista', {lista:resultados});
},
json: function(){
resp.json(resultados);
}
})
})
connection.end();
})
Até aqui tudo bem, mas ao adotar o express-load, a app mudou para:
var app = require('./config/express')();
app.listen(3000, function(){
console.log("servidor rodando");
})
E o produto js ficou o mesmo, ou seja, com app vindo como parâmetro da função e continuou funcionando. Gostaria de saber como ele faz isso por debaixo dos panos, na aula não ficou muito claro (aula 2 - 14 Carregamento automático dos módulos).