我尝试使用此登录名,但没有成功,
我不知道该如何解决。

在注册页面中,我成功输入了哈希密码,但是在登录页面中输入了错误密码时?表示登录成功

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/

10-16 20:11