javascript - 无法在 Node js的模块导出中正确返回

标签 javascript node.js express

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/

相关文章:

javascript - 如果选中,则禁用第二个选择框的选项

javascript - 想要检查用户是否已经存在 MongoDB

node.js - 如何使用 Typescript Express 应用程序渲染 Lit Element Web 组件?

mysql - Express session 和 SQL : Can I use the info from connect-session-sequelize to feed a login/logout table?

javascript - 一次点击事件中的jquery多次点击事件

Javascript style.opacity 从我给出的字符串中删除 0

javascript - 选择具有特定属性的 Web 表单元素

javascript - 如何增加 Webstorm 调试器中显示的帧数?

node.js - 如何在 Mongoose 中构建多对多关系?

javascript - 如何在路由路径中添加 connect-multiparty?