2017-07-06 69 views
0

我想弄清楚如何返回一个聚合函数Angular,但我不断收到错误。我真的坚持这一点,并会感谢我做错了一些帮助。我得到一个错误告诉我无法读取未定义的属性'聚合'。
这是我的路由中的角连接到:返回一个Mongoose Aggregate函数为角

router.get('/enrolledin', function(req, res) { 
    var isEnrolled = Enrolled.findDetails(); //Enrolled.studentIsTaking(student); 
     isEnrolled.then((user) => { 
     res.json(user); 
    }) 
     .catch((err) => { 
     res.send("error found"); 
    }); 


}); 

这里的Enrolled.findDetails()

module.exports.findDetails = function() { 
    var x = db.enrolleds.aggregate(
     { $lookup: 
     { 
      from:'classstores', 
      localField:'classID', 
      foreignField: 'classKey', 
      as: 'matching' 
     } 
     } 


    ); 
    return x; 
} 

回答

1

相信aggregate(滚动示例)预计的阵列而不是一个对象。另外:我不确定为什么人们喜欢用猫鼬使用thencatch。海事组织似乎没有必要,并使您的代码更长。

,我只想把它改写你的代码是这样的:

router.get('/enrolledin', (req, res) => { 
    Enrolled.findDetails((err, users) => { 
     if (err) 
      return res.send('error found', err); 
     res.json(users); 
    }); 
}); 

module.exports.findDetails = (callback) => { 
    db.enrolleds.aggregate([ 
     { 
      $lookup: { 
       from: 'classstores', 
       localField: 'classID', 
       foreignField: 'classKey', 
       as: 'matching' 
      } 
     } 
    ], callback); 
};