================ ROUTE ==============
app.get("/forums/:id", function(req, res){
connection.query('SELECT * FROM Forums where ForumID = ?', [req.params.id], function (err, forumResults) {
if (err) throw err;
console.log(forumResults);
connection.query('SELECT * FROM Users_Comments_Topics_Forums where ForumID = ?',[req.params.id], function (err, topicResults) {
if (err) throw err;
console.log(topicResults);
res.render("Forums/show", {topic: topicResults, forum: forumResults});
});
});
});
注意:加载页面时,它将通过console.log向我显示结果,因此我知道所传递的数据。出于这个原因,我认为问题不在解决之内,但我可能是错的。
================== EJS页面================
这部分工作完美。来自数据库的数据呈现在此处的页面上。
<%forum.forEach(function(forum){%>
<div class="container card">
<div class="container">
<div class="container forum_square">
<div class="row">
<div class="col-lg-6 block">
<a href ="/forums/<%= forum.ForumID %>"> <h5><%=forum.Board %></h5></a>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<p><%= forum.Description %></p>
</div>
</div>
</div>
</div>
</div>
<% }); %>
</div>
但是,就在下面...
<div class="col-lg-6 card description">
<div class="card-body">
<h5 class="card-title">Welcome to <%=forum.Board%></h5>
<p class="card-text"><%=forum.Board %></p>
<a class="btn btn-primary" href="forums/new" role="button">Make new Forum</a>
</div>
</div>
forum.Board不会显示在页面上。除此之外,即使您擦除页面上的所有其他内容并仅键入,它也不会显示。到目前为止,它仅在循环内显示。
==================我尝试过的事情=========================
我尝试在模板标签和数据之间添加和删除空格
我尝试使用<%-而不是
我曾尝试回滚到以前的版本,在此之前它对我来说非常理想。
有人知道会发生什么吗?
最佳答案
您传递到ejs页面的可变论坛是一个数组。
在foreach中,您为内部的实体使用相同的名称:
<%forum.forEach(function(forum){%>
在foreach之外,可变论坛(是一个数组)没有属性板。
您可以尝试编写第一个元素:
<% if (forum.length > 0) { %>
<h5 class="card-title">Welcome to <%=forum[0].Board%></h5>
<% } %>