无法阅读财产' forEach'未定义的评论

时间:2017-11-28 22:51:02

标签: node.js

我正在创建一个用户个人资料部分,可以查看该用户对博客网站的评论。我目前在这段代码上收到此错误

<ul>
<% blogs.comments.forEach(function(blog) { %>
    <li><a href="/blogs/<%= blog._id %>/comments/comment_id</a></li>
<% }); %>
</ul>

将用户带到页面的GET请求具有以下代码

router.get("/users/:id", function(req, res) {
  User.findById(req.params.id, function(err, foundUser) {
    if(err) {
      req.flash("error", "Something went wrong.");
      res.redirect("/");
    }
    Blog.find().where('author.id').equals(foundUser._id).exec(function(err, blogs) {
      if(err) {
        req.flash("error", "Something went wrong.");
        res.redirect("/");
      }
      res.render("show", {user: foundUser, blogs: blogs});
    })
  });
}); 

2 个答案:

答案 0 :(得分:1)

似乎blogs对象没有属性comments,在使用它之前检查它是否存在

<ul>
<% if (Array.isArray(blogs.comments)) { %>
  <% blogs.comments.forEach(function(blog) { %>
    <li><a href="/blogs/<%= blog._id %>/comments/comment_id</a></li>
  <% }); %>
<% } %>
</ul>

答案 1 :(得分:0)

可能是blogs.comments没有值或者它不是数组。

尝试执行控制台日志以检查是否包含值数组。