Я пытаюсь увеличить количество полей, которые возвращает наш API.Прямо сейчас API возвращает информацию об ученике, используя find, а также добавляет некоторую информацию о проектах, получая информацию об ученике и используя findOne, чтобы получить информацию о проекте, в котором студент в данный момент зарегистрирован.
Я пытаюсь добавить некоторую информацию о курсе, используя ту же логику, которую я использовал для получения информации о проекте.
Поэтому я использовал ту же функцию findOne, которую использовал для проектов, и моя логика заключается в следующем.
Я создал переменную, в которой я могу сохранить courseID, а затем помещу содержимое этой переменной во временный объект, отправляемый в файл json.
Если я закомментирую то, что я добавил, код работает отлично, и он возвращает всех студентов, которые мне нужны.Однако, когда я делаю дополнительный findOne для получения информации о курсе, он перестает возвращать что-либо, кроме "{}"
Я собираюсь добавить комментарий к добавленным строкам кода, чтобы упростить его.найти.
Любая помощь будет высоко оценена!
User.find({
isEnrolled: true,
course: {
$ne: null
}
},
'email pantherID firstName lastName project course',
function(err, users) {
console.log("err, users", err, users);
if (err) {
return res.send(err);
} else if (users) {
var userPromises = [];
users.map(function(user) {
userPromises.push(new Promise(function(resolve, reject) {
///////// Added Code START///////
var courseID;
Course.findOne({
fullName: user.course
}, function(err, course) {
console.log("err, course", err, course);
if (err) {
reject('')
}
courseID = course ? course._id : null
//console.log(tempObj)
resolve(tempObj)
}),
///// ADDED CODE END //////
Project.findOne({
title: user.project
}, function(err, proj) {
console.log("err, proj", err, proj);
if (err) {
reject('')
}
//Course ID, Semester, Semester ID
//map to custom object for MJ
var tempObj = {
email: user.email,
id: user.pantherID,
firstName: user.firstName,
lastName: user.lastName,
middle: null,
valid: true,
projectTitle: user.project,
projectId: proj ? proj._id : null,
course: user.course,
courseId: courseID
}
//console.log(tempObj)
resolve(tempObj)
})
}))
})
//async wait and set
Promise.all(userPromises).then(function(results) {
res.json(results)
}).catch(function(err) {
res.send(err)
})
}
})