如何在ejs模板中使用数组显示mongo的json数据?

问题描述 投票:0回答:2

除其他外,我使用猫鼬和快递。我可以显示顶级值,例如“数字”,但无法获得“ contact.email”。我在server.js文件中尝试了很多选项,但我希望有人可以帮助我从ejs端的json提取此信息。谢谢!

我在我的ejs模板中使用此代码:

`<% for(var i= 0 ; i < myObj.length; i++) {%>
  <li>
    <span><%=myObj[i].number %>
  </li>
  <% } %>
   </ul>`

架构

    "_id" : ObjectId("5e67c84a65a2893029991863"),
    "number" : 5,
    "contact" : [ 
        {
            "_id" : ObjectId("5e69a33a0208203268813e01"),
            "email" : "[email protected]",

        }
    ]
}`



arrays json mongodb mongoose ejs
2个回答
0
投票

您可以在下面尝试此操作,因为您需要另一个循环来访问json中的联系人数组:

<% for(var i= 0 ; i < myObj.length; i++) {%>
  <li>
    <span><%=myObj[i].number %>
  </li>
   <ul>
   for(var j=0 ; j < myObj[i].contact.length; j++)
   <li>
    <span><%=myObj[i].contact[j].email %>
  </li>
   <% } %>
  </ul>
  <% } %>
   </ul>`

0
投票

假设您的对象格式如下:-

 var myObj= {
   "_id" : ObjectId("5e67c84a65a2893029991863"),
   "number" : 5,
   "contact" : [{
     "_id": ObjectId("5e69a33a0208203268813e01"),
       "email": "[email protected]"
   }]
 };

您必须像下面那样循环数据:-

<span><%=myObj.number %></span>
<ul>
  <% for(var i= 0 ; i < myObj.contact.length; i++) {%>
  <li><%=myObj.contact[i].email %></li>
  <% } %>
</ul>`

注:-由于myObj是一个对象。 myObj.contactarraymyObj。因此在这种情况下,您必须循环myObj.contact

© www.soinside.com 2019 - 2024. All rights reserved.