我需要从两个不同的mongodb集合中将两组数据加载到一个页面上 通过mongoose发出请求的路由页面如下所示
app.get('/testPage', function(req,res){
dbReadOne.find({}, '', function(error, dataOne){
res.json(dataOne);
});
dbReadTwo.find({},'', function(error, dataTwo){
res.json(dataTwo);
});
});
My Angular工厂看起来像这样
app.factory('dataOneFactory', function($resource){
return $resource('testPage/:dataOne', {}, {
query: { method: 'GET', params: {symbol: 'dataOne'}, isArray: true}
})
});
app.factory('dataTwoFactory', function($resource){
return $resource('testPage/:dataTwo', {}, {
query: { method: 'GET', params: {customList: 'dataTwo'}, isArray: true}
})
});
我完全不知道如何做到这一点。我很感激我能就这个问题提出任何建议。谢谢。
答案 0 :(得分:1)
由于Node.js本质上是异步的, dbReadOne.find 函数是异步运行的,因此你应该在第一个的回调中调用下一个 dbReadOne.find dbReadOne.find 功能。
示例:
app.get('/testPage', function(req, res){
dbReadOne.find({}, '', function(errorOne, dataOne){
if(errorOne)
throw new Error(errorOne);
dbReadTwo.find({},'', function(errorTwo, dataTwo){
if(errorTwo)
throw new Error(errorTwo);
res.json({
dataOne: dataOne,
dataTwo: dataTwo
});
});
});
});