Como
.query()
é um método assíncrono, você não poderá return
o valor como o retorno de chamada será chamado depois o return
é avaliado. Você terá que continuar o
callback
padronizar:function query(sql, callback) {
client.connect();
client.query(sql, function (err, rows, fields) {
if (err) {
callback(err);
else
callback(null, rows, fields);
});
client.end();
}
Correção:Parece
client.end()
permitirá que as consultas atuais terminem antes que a conexão seja realmente fechada. No entanto, chamar
.end()
dentro do retorno de chamada é comum para muitas APIs, pois elas cortam quaisquer ações pendentes.