Jako .query() jest metodą asynchroniczną, nie będziesz w stanie return wartość jako callback będzie wywoływana po return jest oceniany.
Będziesz musiał kontynuować callback wzór:
function query(sql, callback) {
client.connect();
client.query(sql, function (err, rows, fields) {
if (err) {
callback(err);
else
callback(null, rows, fields);
});
client.end();
}
Poprawka:wydaje się, że client.end() pozwoli na zakończenie bieżących zapytań przed faktycznym zamknięciem połączenia.
Chociaż wywołanie .end() wewnątrz wywołania zwrotnego jest powszechne dla wielu interfejsów API, ponieważ odcinają one wszelkie oczekujące działania.