【问题标题】:How to iterate object in ejs?如何在ejs中迭代对象?
【发布时间】:2021-04-09 22:57:51
【问题描述】:

美好的一天!我是 Node.js 的初学者。我对 ejs 上的迭代对象有疑问。我使用 book 对象从 DB 中检索所有数据并尝试使用 res.locals 传递它。我将使用该对象在前端显示书籍信息。我尝试了几种方法来迭代我存储在中间件上的对象,但我被困在它上面(例如按长度迭代书籍并使用 forEach)。

中间件:

let book = await Book.find({});
res.locals.book = {book};
next();

EJS:

<%if (book){%>
    <%for (var result in book){%>
    <li><%=book%></li> 
    <li><%=result%>:<%=book[result]%></li>    
<%}%>

结果:

还有其他方法可以迭代和显示它吗?太棒了!

【问题讨论】:

  • 您是否要显示书名?
  • 我正在尝试显示数据库的所有数据,例如标题、作者、价格等。

标签: node.js mongodb express mongoose ejs


【解决方案1】:

你可以这样做

<%if (book){%>
<%for (var result in book){%>
    <li>genre :<ul><%=for(genres in book[result].genre) {%>
        <li><%=book[result].genre[genres]%></li>
<%}%>
     </ul>
    </li>    
<li>title:<%=book[result].title %></li>
<li>copy:<%=book[result].copy %></li>
<li>cover:<%=book[result].cover %></li>
<li>author:<%=book[result].author %></li>
<li>price:<%=book[result].price %></li>
<li>description:<%=book[result].description %></li>
<li>language:<%=book[result].language %></li>
<li>release date:<%=book[result].release_date %></li>
<li>favorites:<%=book[result].favorites %></li>

<%}%> 

希望对你有帮助

【讨论】:

  • 感谢您的帮助!但它没有显示数据库的内容。只是标题、副本、封面等的列表。
猜你喜欢
  • 2015-10-24
  • 2016-09-13
  • 2017-10-30
  • 1970-01-01
  • 1970-01-01
  • 2022-09-30
  • 2022-11-15
  • 2022-01-23
  • 1970-01-01
相关资源
最近更新 更多