【发布时间】:2017-09-14 07:07:29
【问题描述】:
好的,这是我的代码:
router.get('/',middleware.isLoggedIn, function(req, res){
var clave = req.query.id;
Students.findById(req.params.id).exec(function(err,foundStudent){
if(err){
console.log(err);
}else{
var estudiante=foundStudent.matriculaT0;
var modelo=foundStudent.modelo;
Horarios.find({matricula:estudiante,claveMateria:clave}).exec(function(err,foundHorario){
if(err){
console.log(err)
}else{
var grupo=foundHorario[0].CRN;
Grades.find({CRN:grupo}).exec(function(err,foundGrade){
if(err){
console.log(err);
}else{
var pagina="grade/"+modelo+"/"+clave;
res.render(pagina,{horario:foundHorario, student:foundStudent, grade:foundGrade});
}})}})}})});
基本上,我正在使用三个不同的模型,即学生、时间表和成绩。因此,首先要访问每个学生的每个科目的成绩,我会查找所选学生并获取他的学校 ID 号(matricula)和它所属的模型(有两个)。
一旦我有了它,我就使用从请求中得到的“matricula”和“clave”(主题密钥代码)查看学生科目的学校时间表。一旦我从我寻找的学生那里获得了 7 个科目一个特定的主题代码 (CRN),所以我可以在 ejs 模板中加载它的成绩(每个主题都有不同的评分系统......)
所以,一切都很好,页面的渲染和寻找学生和日程安排,唯一的问题是最后一个查询,foundGrade 返回为空,但是当我在 mongo 控制台中执行相同的查询时,我得到了正确的结果。
var grupo=foundHorario[0].CRN
返回正确的结果,一个字符串形式的主题键,在成绩模型中,主题键 (CRN) 也是一个字符串。我还确保集合名称是复数形式,所以这也不是问题,有什么想法吗?
【问题讨论】:
-
伟大的 cb 地狱 }); }})}})}})});
标签: node.js mongodb mongoose mongodb-query