2017-07-06 65 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); 
};