我试图弄清楚如何将聚合函数返回给 Angular,但我不断收到错误消息。我真的坚持这一点,并希望对我做错的事情提供一些帮助。我收到一条错误消息,告诉我无法读取 undefined 的属性“聚合”。
这是我的角度连接到的路线:
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;
}
我相信聚合(滚动到示例)需要一个数组而不是一个对象。
旁白:我不知道为什么人们喜欢使用then
和catch
与猫鼬。IMO 似乎没有必要,并使您的代码更长。
我会像这样简单地重写你的代码:
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);
};
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句