我从model.find()返回函数中得到了undefined

时间:2014-11-25 14:05:28

标签: javascript node.js mongodb mongoose

这是我想要返回的功能

var setUser = function(Email){
   UserModel.findOne({email : Email}, function(err, data){
      if(err) {
          return Hapi.error.badRequest('There is no this user');
      }
      console.log(data);
      return data;
   });
};

console.log(数据);显示找到的结果。但是当我使用这个功能时

实施例

console.log(setUser('123@mail.com'));

此日志从函数返回未定义。但是登录该函数有数据。

1 个答案:

答案 0 :(得分:0)

.findOne异步执行,你无法从回调函数返回...它不会去任何地方。相反,你需要做类似的事情:

setUser('123@mail.com', console.log)

var setUser = function (Email, callback) {
        // .. snip
        callback(data);
}