不能 return 查询之外的值。猫鼬

cant return a value outside the query. mongoose

我是 node js 的新手,我正在使用 restify 和 mongoose。所以,当我找到数据时,我尝试 return 一些值,当找不到数据时,我尝试 return null。这是我的代码:

getUsers = function (user, pass, urole){
      var data = '';
      Publisher.findOne({username:user, password:pass, role:urole},function(err, success){
         if (err){}
         if (!success){
           //when data not found
           data = 'null';
         }else{
           //when data found
           data = 'found'; 
         }
     });
     return data;
}

我想调用函数并赋值给变量。

var user = getUsers(user,pass,urole)
console.log(user)

但结果未定义。

findOne为异步函数,请将return data放入回调函数,也return通过回调函数获取数据

getUsers = function (user, pass, urole, callback){
      var data = '';
      Publisher.findOne({username:user, password:pass, role:urole},function(err, success){
         if (err){}
         if (!success){
           //when data not found
           data = 'null';
         }else{
           //when data found
           data = 'found'; 
         }
         callback && callback(data);
     });
}

getUsers(user, pass, urole, function(data) {
    console.log(data);
});