Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

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) {
...
}