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');
        });