Sunday, 23 April 2017

How to populate an array with mongoose models

I am making a simple task app using Nodejs. When the user enters the home page, I will send the user's tasks to the front end. Each "User" has an array of task ids to sort out which task is theirs. I just keep getting an empty array when I try to push each task out to the local array.

User.findById(req.session.passport.user, function(err, user){

if(err){
  console.log(err);
  res.redirect("/login");

} else {

  var tasks = new Array(user.tasks.length);

  for(var i = 0; i < user.tasks.length; i++){

    Task.findById( user.tasks[i] , function(err, task){
      if(err){
        console.log(err);
      }
      if(!tasks){
        console.log("Couldn't find the task: " + user.tasks[i] );
      } else {
        console.log("Found task: " + task); //Tasks are always found
        tasks.push(task); //<=== Not pushing?
      }

    });
  }
  console.log(tasks); // <====this is alwayse EMPTY
  res.render("app-mobile", {user: user, tasks: tasks});

}

});



via Tyler Ferrara

No comments:

Post a Comment