1
resposta

Conexão não está sendo encerrada

Boa noite,

Estou recebendo um erro ao recarregar a pagina pela segunda vez... o erro que eu recebo é : Error: Cannot enqueue Quit after invoking quit. Isso não é por não estarmos fechando a conexão corretamente? pois a finalização da conexão está após o render. Segue código:

var connectionFactory = require('../infra/connectionFactory')();

module.exports = function(app){

app.get('/produtos', function(resquest, response){

connectionFactory.query('select * from produtos', function(erro, result){ response.render('produtos/lista', {lista:result}); });

connectionFactory.end(); });};

1 resposta

Olá Felipe, tudo bem? Minha sugestão para este problema, é retirar de dentro do callback o trecho de código que fecha a conexão. Ficando desta forma:

app.get('/produtos', function(resquest, response){
        connectionFactory.query('select * from produtos', function(erro, result){ response.render('produtos/lista', {lista:result}); });
    });
    connectionFactory.end();
};

Todo método que você invoca em uma conexão é enfileirado e executado em sequência. O fechamento da conexão utilizando end() garante que todas as consultas restantes sejam executadas antes de enviar um pacote de encerramento para o servidor mysql, ou seja, a conexão será fechada logo após a chamada de connectionFactory.query não dentro da função de callback.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software