【发布时间】:2018-06-03 12:00:10
【问题描述】:
我目前正在尝试在从 postgresql 调用另一个函数的函数中验证用户名和密码。我的验证应该在 validate 函数中返回 true,但事实并非如此。它上面的 console.log 可以正常工作,我在实际使用 validate() 时使用的参数应该返回 true,但不是。
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();
});
});
}
【问题讨论】:
-
您永远不会通过从数据库中请求所有用户记录来验证用户。这是我见过的最糟糕的解决方案。您应该将用户详细信息作为参数传递到查询中。
标签: node.js postgresql