首页 > 解决方案 > 如何正确修复节点中的渲染 ejs

问题描述

我正在从 mongodb 获取数据并将其作为res.render('user', {data: result}). 现在在ejs方面,我正在获取这个数据字段是一个 JSON 对象,其中包含名称、电子邮件、密码等字段和出席数组。像这样的结果:

{
    name:"Joe",
    password:"jdsj",
    attendance:[
        entry: Date,
        late: true/false
    ]
}

现在,当我像这样循环遍历这个数组时:

<% var counter = 0 %>
<% for( var i = 0; i< data.attendance.length/2; 
i+2{%>

    <% if(data.attendance.length===0){%>
        <% counter=0 %> 
        <% } else{ %>
        <%  counter++ %>
    <% } %>    
<% } %>`

当我在页面上获取它时,它不会呈现。如果没有for循环,它可以渲染,但循环它不会渲染。

<li><%= data.name%></li>
<li><%= counter %></li>
...

标签: javascriptarraysnode.jsexpressejs

解决方案


您应该像这样在循环内的 li 元素中附加数据

 <ul>
<% for(var i=0; i<data.length; i++) {%>
   <li><%= data.name %></li>
<% } %>
</ul>

推荐阅读