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.