Я пытаюсь написать "клон Facebook" в nodejs с mongoDB.Проблема, с которой я сталкиваюсь, заключается в том, что каждый раз, когда пользователь заходит в профиль пользователя, ему нужно получить массив своих друзей.то, как я это делаю, выглядит следующим образом:
router.get("/user/:id/profile", isLoggedIn, (req, res) => {
let friends = [];
User.findById(req.params.id, (err, user) => {
if (err) {
req.flash("error", "There has been an error going to this persons profile.");
res.redirect("back");
} else {
if (user.friends.length > 0) {
for(var i = 0; i < user.friends.length; i++) {
User.findById(user.friends[i], (err, friend) => {
if (err) {
console.log(err);
req.flash("error", "Could not find the friends list")
res.redirect("back")
} else {
friends.unshift({
firstName: friend.firstName,
lastName: friend.lastName,
_id: friend._id
})
console.log(friends)
}
});
}
console.log(friends, "158")
res.render("user", { userData: user, friends: friends })
} else {
// render the page without the friends array.
res.render("user", { userData: user }); // im calling it userData because i have a local template variable called user and i don't want to over-write it
}
}
});
});
и что происходит, когда я выполняю console.log (friends) внутри цикла for, я получаю массив друзей, в котором все правильно, но когда я делаю console.log (friends) перед res.render ("user"), массив становится пустым.есть идеи почему?