0
module.exports.login=function(username,password){
        var status;
        var userid=username;
        User.findOne({
            'username':[userid],
            'password':[password]
        },function(err,user){
            if(!user){
                console.log("logged err");
                status= false;
            }else{
                console.log("login in");
                status= true;
            }
return status;
        });


    };

Server.js:

var user_controller=require('./controllers/user_controller');
passport.use(new passportLocal(function(username,password,done){
var value=user_controller.login(username,password);
if(value){
    console.log(value+"true")
    console.log(login_message);
    done(null,{id:username,name:username});
}else{
    console.log(value+"false");

    done(null,null);
}

Ok so my login controller is now passing the value properly but in my server.js I am always getting my value as undefined and always marked as false.

Mohammed Gadiwala
  • 1,923
  • 2
  • 18
  • 26
  • I would suggest instead of returning the value from outside the function loop , return it from inside. Call it as you call a promise in javascript and that should get you the required result. – Sumit Surana Feb 29 '16 at 09:35
  • sorry I am unable to add answer to this, so once you get the return value, you can do is use then function which resolves promises in javascript. here it would be something like: `var user_controller=require('./controllers/user_controller'); passport.use(new passportLocal(function(username,password,done){ user_controller.login(username,password).then(function(value){ if(value){ console.log(value+"true") console.log(login_message); done(null,{id:username,name:username}); }else{ console.log(value+"false"); done(null,null); } });` – Sumit Surana Feb 29 '16 at 09:55
  • I tried what u said getting an error: Cannot read property 'then' of undefined @Sumit – Mohammed Gadiwala Feb 29 '16 at 10:05
  • can you debug and see whether you are able to access the instance of user_controller.login in your server.js file. – Sumit Surana Feb 29 '16 at 10:27
  • Yeah did that I can access – Mohammed Gadiwala Feb 29 '16 at 10:38

1 Answers1

2

Move the return statement to the callback function

module.exports.login=function(username,password,done){
    var status;
    var userid=username;
    User.findOne({
        'username':[userid],
        'password':[password]
    },function(err,user){
        if(!user){
            console.log("logged err");
            status= false;
        }else{
            console.log("login in");
            status= true;
        }
        return status;
    });
};
Damodaran
  • 10,882
  • 10
  • 60
  • 81