Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Refatoração de função

No Content Negotiation foi explicado que o nome tem uma forma de devolver diferente formatos de conteúdo, mas foi falado também sobre refatorar a função.

Minha dúvida é, quando cria a conexão o que muda é ação, mas a parte de conexão é sempre a mesma. Como eu poderia isolar essa parte que se repete?

Repete:

       var connection = app.infra.connectionFactory();
        var produtosDAO = new app.infra.ProdutosDAO(connection);
        })

      connection.end();

Muda

    produtosDAO.salva(produto, function(erros, resultados){
            res.redirect('/produtos');
        });
1 resposta
solução!

Você poderia ter uma factory de daos, acho meio exagerado, mas rolaria.

app.infra.DaoFactory.produtosDao( function(produtosDao) {
  produtosDao.salva(...)
}
 );