1
resposta

var rotasProdutos = require('./app/routes/produtos')(app);

var rotasProdutos = require('./app/routes/produtos')(app);

por que é preciso passar app como argumento na invocação das rotas dos produtos, pois dentro da função no script produtos já invoca-se, ao meu ver é redundante e necessário, porém gostaria de entender mais.

1 resposta

Bom. nesse caso você esta passando o app que um objeto do express como parâmetro para a classe produtos.

O modulo precisa do objeto do express para executar as tarefas de GET e POST e criar conexões com o banco.

var app = require('./config/express')
var rotasProdutos = require('./app/routes/produtos')(app);

//classe produtos
module.exports = function(app) {
...
}