mongo dbを照会して結果を返し、ページ上にレンダリングする関数を作成しようとしています。関数はmongodbから取り出されたオブジェクトを返さない
私は現在、これが動作しない理由を見つけるためにオブジェクトをCONSOLE.LOGしようとしている:
var getMarkets = function (marketID) {
MongoClient.connect('mongodb://localhost:27017/test', function(err, db){
db.collection("new-test-2", function (err, collection) {
collection.find({"ID": parseInt(marketID, 10)}).toArray(function(err, items) {
console.log(items);
return items;
});
});
});
};
router.get('/markets/:marketid', function(req, res, next) {
var marketobj = getMarkets(req.params.marketid);
console.log(marketobj);
res.render('api', { title: 'API', marketid: marketobj });
});
機能の中にネストされたログが正常に動作しますが、ルーティングオブジェクト内の、ログundefinedを返します。何が起きてる?私はそれが非同期コールバックと関係があると感じていますが、私はそれについて推論することはできません。
ありがとうございます。
約束で 'getMarkets'をラップし、それは' getMarkets' –
@DarrenSweeneyの成功から、ルータ機能を解決するか、コールするのを待つのどちらか本当にやった約束トリック、今日何かを学ぶのを助けてくれてありがとう! –