Als .query() is een asynchrone methode, u kunt niet return de waarde als de callback wordt na aangeroepen de return wordt geëvalueerd.
U moet doorgaan met de callback patroon:
function query(sql, callback) {
client.connect();
client.query(sql, function (err, rows, fields) {
if (err) {
callback(err);
else
callback(null, rows, fields);
});
client.end();
}
Correctie:lijkt client.end() zorgt ervoor dat huidige zoekopdrachten kunnen worden voltooid voordat de verbinding daadwerkelijk wordt verbroken.
Hoewel, .end() . aanroepen binnen de callback is gebruikelijk voor veel API's, omdat ze alle lopende acties afbreken.