Comme .query() est une méthode asynchrone, vous ne pourrez pas return la valeur car le rappel sera appelé après le return est évalué.
Vous devrez continuer le callback motif :
function query(sql, callback) {
client.connect();
client.query(sql, function (err, rows, fields) {
if (err) {
callback(err);
else
callback(null, rows, fields);
});
client.end();
}
Correction :semble client.end() permettra aux requêtes en cours de se terminer avant la fermeture effective de la connexion.
Cependant, appeler .end() à l'intérieur du rappel est monnaie courante pour de nombreuses API car elles interrompront toutes les actions en attente.