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;
});
};
服务器.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);
}
好的,我的登录 Controller 现在可以正确传递值,但在我的 server.js 中,我的值始终为未定义,并且始终标记为 false。
最佳答案
将return语句移至回调函数
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;
});
};
关于javascript - 无法在 Node js的模块导出中正确返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35695961/