Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript NodeJS passportJS MySQL本地用户身份验证_Javascript_Mysql_Node.js_Passport.js - Fatal编程技术网

Javascript NodeJS passportJS MySQL本地用户身份验证

Javascript NodeJS passportJS MySQL本地用户身份验证,javascript,mysql,node.js,passport.js,Javascript,Mysql,Node.js,Passport.js,我看不出这里有什么错误:它返回了 未定义 “未知用户” passport.use(新本地策略)( 函数(用户名、密码、完成){ process.nextTick(函数(){ findByUsername(用户名、函数(错误、用户){ 如果(错误){ 控制台日志(err); 返回完成(err); } 如果(!user){ console.log(“未知用户”); 返回完成(null,false,{消息:'未知用户'+用户名}); } 如果(user.password!=密码){ console.l

我看不出这里有什么错误:它返回了

未定义
“未知用户”

passport.use(新本地策略)(
函数(用户名、密码、完成){
process.nextTick(函数(){
findByUsername(用户名、函数(错误、用户){
如果(错误){
控制台日志(err);
返回完成(err);
}
如果(!user){
console.log(“未知用户”);
返回完成(null,false,{消息:'未知用户'+用户名});
}
如果(user.password!=密码){
console.log(“无效密码”);
返回完成(null,false,{消息:“无效密码”});
}
返回完成(空,用户);
})
});
}));
函数findByUsername(用户名,fn){
var user=[];
connection.query('SELECT*FROM username=?',[username],function(err,rows){
//console.dir(行);
if(err!=null){
//res.end(“查询错误:+err”);
log(“查询错误:+err”);
}否则{
对于(变量i=0;i
您正在回调中传递user.username。相反,您应该传递用户对象。 编辑:您应该仅在执行查询后调用回调

function findByUsername(username, fn) {
    var user = [];
    connection.query('SELECT * FROM Users WHERE username = ?', [username], function (err, rows) {
        //console.dir(rows);
        if (err != null) {
            //res.end("Query error:" + err);
            console.log("Query error:" + err);
        } else {
            for (var i = 0; i < rows.length; i++) {
                var myRows = rows[i];
                user.push(myRows);
            };
        }

        console.log(user);
        console.log(user.username);
        if (user.username) {
          return fn(null, user);
        } else {
          return fn(null, null);
        }
    });
}
函数findByUsername(用户名,fn){
var user=[];
connection.query('SELECT*FROM username=?',[username],function(err,rows){
//console.dir(行);
if(err!=null){
//res.end(“查询错误:+err”);
log(“查询错误:+err”);
}否则{
对于(变量i=0;i
function findByUsername(username, fn) {
    var user = [];
    connection.query('SELECT * FROM Users WHERE username = ?', [username], function (err, rows) {
        //console.dir(rows);
        if (err != null) {
            //res.end("Query error:" + err);
            console.log("Query error:" + err);
        } else {
            for (var i = 0; i < rows.length; i++) {
                var myRows = rows[i];
                user.push(myRows);
            };
        }

        console.log(user);
        console.log(user.username);
        if (user.username) {
          return fn(null, user);
        } else {
          return fn(null, null);
        }
    });
}