Като .query()
е асинхронен метод, няма да можете да return
стойността като обратното извикване ще бъде извикана след return
се оценява.
Ще трябва да продължите callback
модел:
function query(sql, callback) {
client.connect();
client.query(sql, function (err, rows, fields) {
if (err) {
callback(err);
else
callback(null, rows, fields);
});
client.end();
}
Корекция:Изглежда client.end()
ще позволи на текущите заявки да приключат, преди връзката действително да се затвори.
Въпреки това, извикване на .end()
вътре в обратното извикване е нещо обичайно за много API, тъй като те ще прекъснат всички чакащи действия.