Som .query() är en asynkron metod, kommer du inte att kunna return värdet som återuppringning kommer att kallas efter return utvärderas.
Du måste fortsätta callback mönster:
function query(sql, callback) {
client.connect();
client.query(sql, function (err, rows, fields) {
if (err) {
callback(err);
else
callback(null, rows, fields);
});
client.end();
}
Rättelse:Verkar client.end() kommer att tillåta aktuella frågor att slutföras innan anslutningen faktiskt stängs.
Dock anropar .end() inuti återuppringningen är vanligt för många API:er eftersom de kommer att avbryta eventuella väntande åtgärder.