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.