Estou tomando o erro "Error: Cannot enqueue Quit after invoking quit." que pelo pesquisei em outro tópico, é causado pelo fluxo assincrono no node que pode estar executando o connection.end(); antes mesmo da conexão ser aberta. Segui a sugestão de encadear o connection.end diretamente no connection.query mas deu certo.
produtos.js
module.exports = function(app) {
app.get('/produtos', function(req, res) {
var connection = app.infra.connectionFactory;
var produtosBanco = new app.infra.ProdutosDAO(connection);
produtosBanco.lista(function(err, results) {
console.log(err);
res.render('produtos/lista', { lista: results });
connection.end();
});
});
};
produtosDAO.js
function ProdutosDAO(connection) {
this._connection = connection;
};
ProdutosDAO.prototype.lista = function(callback) {
this._connection.query('select * from livros', callback);
};
module.exports = function() {
return ProdutosDAO;
};