Skip to content

Instantly share code, notes, and snippets.

@warmbowski
Created November 10, 2014 22:09
Show Gist options
  • Save warmbowski/82aa550400f989fa3f2e to your computer and use it in GitHub Desktop.
Save warmbowski/82aa550400f989fa3f2e to your computer and use it in GitHub Desktop.
Trying to return async data in a forEach loop. Using npm async package.
'use strict';
var async = require('async');
var Enrollment = require('../models/enrollment');
var Student = require('../models/student');
var Course = require('../models/course');
module.exports = function(app) {
app.get('/api/studentsincourse/:courseId', function(req, res) {
Enrollment.find({courseId: req.params.courseId}, function(err, enrollments) {
var studentsList = [];
async.forEach (enrollments, function(enrollee, callback) {
console.log('Processing ', enrollee);
Student.findOne({_id: enrollee.studentId}, function(err, students) {
console.log(students);
studentsList.push(students);
});
callback();
});
console.log(studentsList);
res.send('worked')
});
});
};
@warmbowski
Copy link
Author

console.log() outputs to console by the code above:

paul$ node server.js
server running on port: 3000
Processing { _id: 5460f6d9c35c21f0afbe8dd2,
studentId: '5460f5c9c35c21f0afbe8dcf',
courseId: '5460f567c35c21f0afbe8dcc',
verified: false }
Processing { _id: 5460f6f9c35c21f0afbe8dd3,
studentId: '5460f5a6c35c21f0afbe8dcd',
courseId: '5460f567c35c21f0afbe8dcc',
verified: false }
Processing { _id: 5460f70cc35c21f0afbe8dd4,
studentId: '5460f5b4c35c21f0afbe8dce',
courseId: '5460f567c35c21f0afbe8dcc',
verified: false }
[]
{ _id: 5460f5c9c35c21f0afbe8dcf, studentName: 'Gertrude' }
{ _id: 5460f5a6c35c21f0afbe8dcd, studentName: 'Fredford' }
{ _id: 5460f5b4c35c21f0afbe8dce, studentName: 'Cornelius' }

@warmbowski
Copy link
Author

My database seed from the mongo console:

db.courses.insert({courseName: "Calculus"})
WriteResult({ "nInserted" : 1 })
db.courses.insert({courseName: "Chemistry"})
WriteResult({ "nInserted" : 1 })
db.courses.insert({courseName: "History"})
WriteResult({ "nInserted" : 1 })
db.students.insert({studentName: "Fredford"})
WriteResult({ "nInserted" : 1 })
db.students.insert({studentName: "Cornelius"})
WriteResult({ "nInserted" : 1 })
db.students.insert({studentName: "Gertrude"})
WriteResult({ "nInserted" : 1 })
db.enrollments.insert({studentId: "5460f5a6c35c21f0afbe8dcd", courseId: "5460f53cc35c21f0afbe8dca"})
WriteResult({ "nInserted" : 1 })
db.enrollments.insert({studentId: "5460f5b4c35c21f0afbe8dce", courseId: "5460f554c35c21f0afbe8dcb"})
WriteResult({ "nInserted" : 1 })
db.enrollments.insert({studentId: "5460f5c9c35c21f0afbe8dcf", courseId: "5460f567c35c21f0afbe8dcc"})
WriteResult({ "nInserted" : 1 })
db.enrollments.insert({studentId: "5460f5a6c35c21f0afbe8dcd", courseId: "5460f567c35c21f0afbe8dcc"})
WriteResult({ "nInserted" : 1 })
db.enrollments.insert({studentId: "5460f5b4c35c21f0afbe8dce", courseId: "5460f567c35c21f0afbe8dcc"})
WriteResult({ "nInserted" : 1 })

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment