我尝试使用此登录名,但没有成功,
我不知道该如何解决。
在注册页面中,我成功输入了哈希密码,但是在登录页面中输入了错误密码时?表示登录成功
connection.query("SELECT * FROM App WHERE name = '"+ name +"' ", function(err, rows, fields){
if(err){
console.log(err);
}else{
if(rows.length <= 0){
errors.push({ msg: 'Wrong Username' });
}else{
var hash = "SELECT password FROM App WHERE name = '"+ name + "' ";
connection.query(hash, function(err, result){
if(err){
console.log(err);
}
bcryptjs.compare(req.body.pass , hash, function(err, result) {
if (err) { throw (err); }
console.log(result);
});
});
}
}
if(errors.length > 0){
res.render('login',{
errors,
name,
pass
});
}else{
res.render('Home', { name: name});
}
});`enter code here`
当我在终端运行它的显示错误时
**Server is running at localhost:1001
Connected!
false**
最佳答案
SELECE
肯定是一个错字,因此应该返回错误。您还要捕获变量results
,然后使用result
,该变量不匹配,也是一个错误。
由于您正在测试错误的存在而不是成功测试的存在,并且您的代码有足够的错误,因此无法正确地填充该数组,因此我怀疑您没有发现真正的错误,并且认为一切正常,但事实并非如此。
提示:测试是否有成功的结果,而不是没有失败。
这是Promises帮助的地方。如果发生错误并且您没有正确地catch
发生错误,它们将自动爆炸。
关于mysql - 使用哈希密码的NodeJs MySQL登录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59638652/