2016-05-10 59 views
-1

我正在写与猫鼬的Node.js的API,NodeJS - 从找到的Mongoose返回对象?

但对于任务的目的,我想要得到的对象从我找到一个变量,

所以我有这样的:

exports.get_info = function(_id) { 

    Session.findById(_id, function(err, session) { 
    if (err) 
    res.send(err); 

    console.log (session); // the object is good 
    return session; // trying to return it 
    }); 
}; 

但是当我打电话:

 session_ = sessions.get_info(id); 

这里session_是不确定的...

有什么建议吗?

回答

0

做了正确的方法是:

exports.get_info = function(_id,callback) { 

    Session.findById(_id, function(err, session) { 
    if (err) 
    res.send(err); 

    console.log (session); // the object is good 
    callback(null,session); // trying to return it 
    }); 
}; 
这样

,你可以得到这样的会议:

sessions.get_info(id,function(err,session){ 
if(err) console.log(err); 
console.log(session); 
}); 
+0

您还可以返回错误变量并将其打印在调用函数中,例如:** callback(err)** –

0

猫鼬模型find它是一个同步功能,你不能立即得到结果。您应该使用回调或更好的解决方案 - 承诺(猫鼬支持的承诺):

exports.get_info = function(_id) { 
    return Session.findById(_id); 
}; 

get_info(/* object id */) 
    .then(session > console.log(session)) 
    .catch(err => console.log(err));