2017-11-02 10 views
0
var liveJSON = []; 
Player.find({teamName: req.query.homeTeam}, function(err, foundHomePlayers){ 
    if (err) { 
     console.log(err); 
    } else { 
     liveJSON = foundHomePlayers; <<<<------ HERE! 
    } 
}); 

MongoDBのデータ(foundHomePlayers)をjavascript変数(liveJSON)に保存します。しかし、この構文は機能しませんか? foundHomePlayers全体をjavascript変数にどのように格納できますか?MongoDBデータをjavascript変数に格納するにはどうしたらいいですか?

+0

は、私はあなたの質問に答えています:

var liveJSON = []; Player.find({teamName: req.query.homeTeam}, function(err, foundHomePlayers){ if (err) { console.log(err); } else { liveJSON = foundHomePlayers; <<<<------ HERE! } }); liveJSON // This will not be defined yet because the callback is async 

私の代わりの提案は、あなたがそれを代わりにグローバル変数に頼るのでフェッチされた後liveJSONデータを処理できる機能を誘発するということですか?私はあなたからの返事を聞かないことに驚いた。 – SamMorrowDrums

答えて

0

コールバックが非同期であることを誤解していると思われ、それらをトリガするイベントが発生するまでは起動しないので、グローバル変数にmongoデータを格納しようとすると無駄になります。

function doSomethingWithLiveJSON(liveJSON) { 
    console.log(liveJSON); 
} 
Player.find({teamName: req.query.homeTeam}, function(err, foundHomePlayers){ 
    if (err) { 
     console.log(err); 
    } else { 
     doSomethingWithLiveJSON(foundHomePlayers); 
    } 
}); 
関連する問題