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.