使用EJS模板显示数组信息时出现[Object, Object]问题求助
解决EJS模板中显示对象数组内容的问题
问题原因
直接在EJS中输出整个postlist[i]对象时,JavaScript会默认将对象转换为字符串,结果就是[Object, Object]——这是因为它无法识别你要展示对象内部的具体属性。
解决方案
你需要明确访问对象的具体属性(比如你定义的title和description),修改EJS模板的循环部分即可:
修改后的EJS代码
<h1>Home</h1> <p><%= hsContent %></p> <% for (let i=0; i<postlist.length; i++ ){ %> <h2><%= postlist[i].title %></h2> <p><%= postlist[i].description %></p> <% } %>
额外优化建议
- 可以使用
forEach循环让代码更简洁:
<% postlist.forEach(post => { %> <h2><%= post.title %></h2> <p><%= post.description %></p> <% }) %>
- 确保后端渲染模板时,传递的数组变量名是
postlist(和模板里的变量名对应),比如:
app.get("/", function(req, res) { res.render("home", { hsContent: "你的首页内容", postlist: posts }); });
内容的提问来源于stack exchange,提问作者K1ng_Franz
相关产品推荐
相关产品推荐

