Ich versuche derzeit, Benutzername und Kennwort in einer Funktion zu validieren, die eine andere Funktion von Postgresql aufruft. Meine Validierung sollte in der Validierungsfunktion den Wert "true" zurückgeben, tut dies jedoch nicht. Das console.log darüber funktioniert und die Parameter, die ich benutze, wenn ich validate() benutze, sollten wahr zurückgeben, sind es aber nicht.Boolean aus PostgreSQL-Pool zurückgeben
function validate(username, password){
//PG Connect
pool.connect((err, client, done)=>{
if(err){
return console.error('error fetching client from pool', err);
}
client.query('SELECT * FROM users', (err, result)=>{
if(err){
return console.error('error running query', err);
}
for(let i = 0; i < result.rows.length; i++){
if(result.rows[i].username.trim() == username && result.rows[i].password.trim() == password){
console.log("this works");
return true; //this doesn't return true when I call the function
}
console.log(result.rows[i].username.trim() + " " + result.rows[i].password.trim());
}
return false;
done();
});
});
}
Sie validieren niemals einen Benutzer, indem Sie alle Benutzerdatensätze aus der Datenbank anfordern. Das ist die schlechteste Lösung, die ich bisher gesehen habe. Sie sollen Benutzerdetails als Parameter an die Abfrage übergeben. –