我想在foreach中访问课程属性以使用关注功能。 如果我将代码呈现在其他文件中,但是我想在用户配置文件中使用“跟随”按钮功能,那么跟随功能将起作用。 我试图参考该课程,但不起作用:(类似res.render(“ user / show”,{user:user,Lessons:Lessons}); 不讨厌,我是一个初学者,我刚刚完成了一个在线课程,现在我正在尝试重构个人项目的代码。
//index.js file
router.get("/profile/:id", function(req, res){
User.findById(req.params.id, function(err, foundUser) {
if(err){
req.flash("error", "Error!");
return res.redirect("/lessons");
}
Lesson.find().where("author.id").equals(foundUser._id).exec(function(err, lessons) {
if(err){
req.flash("error", "Ceva nu a mers bine!");
return res.redirect("/lessons");
}
res.render("users/show", {user: foundUser, lessons: lessons});
});
});
});
// profile for follow function
router.get("/users/:id", async function(req, res) {
try {
let user = await User.findById(req.params.id).populate('followers').exec();
res.render('users/show', { user: user, lessons: lessons});
} catch(err) {
req.flash('error', err.message);
return res.redirect('back');
}
});
//show ejs file
<% include ../partials/header %>
<div class = "container">
<div class="row">
<div class="col-md-4">
<div class="card mb-3">
<img class="card-img-top" src="<%= user.avatar %>" alt="user profile image">
<div class="card-body">
<h4 class = "card-title"><a href="/follow/<%= user.id %>">
<button id="followBtn" class="btn btn-danger">Follow <%= user.username %></button></a></h4>
</div>
</div>
<h3>Lectiile utilizatorului: <strong><%= user.username %></strong></h3>
<ol class = "profile-lecture">
<% lessons.forEach(function(lesson) { %>
<li><a href="/lessons/<%= lesson.id %>"><%= lesson.name %></a></li>
<% }); %>
</ol>
</div>
<div class = "row">
<div class="col-md-12">
<ul>
<h3>Datele personale ale utilizatorului: <strong><%= user.username %></strong></h3>
<hr>
<h2>Nume: <%= user.firstName %></h2>
<h2>Prenume: <%= user.lastName %></h2>
<h2>Email: <a href="mailto:<%= user.email %>"><%= user.email %></a></h2>
</ul>
<hr>
</div>
</div>
</div>
</div>
<% include ../partials/footer %>