如何访问局部变量对象中的属性并使用它?

时间:2019-03-23 09:19:23

标签: node.js

我想在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 %>

0 个答案:

没有答案