无法在查询外返回一个值。猫鼬

时间:2016-02-26 08:22:59

标签: node.js mongodb mongoose restify

我是节点js的新手,我正在使用restify和mongoose。所以,我尝试在找到数据时返回一些值,并在未找到数据时返回null。这是我的代码:

String

我想调用该函数并分配给变量。

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;
}

但结果未定义。

1 个答案:

答案 0 :(得分:1)

findOne是异步函数,请将return data放入回调函数,同时通过回调函数返回日期

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);
});