2016-05-10 2 views
-1

NodeJS - マングースオブジェクトを検索から返しますか?私はマングースとNode.jsのAPIを書いて

しかし、タスクの目的のために、私は私の発見から変数としてオブジェクトを取得したい

ので、私はこれを持っている:

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)); 
関連する問題