【问题标题】:How to display the json data from mongo with arrays in ejs template?如何在 ejs 模板中使用数组显示来自 mongo 的 json 数据?
【发布时间】:2020-06-24 04:23:24
【问题描述】:

我正在使用猫鼬和快递等。我可以显示顶级值,例如“数字”,但无法获取“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" : "dhenley@gmail.com",

        }
    ]
}`



【问题讨论】:

    标签: arrays json mongodb mongoose ejs


    【解决方案1】:

    您可以在下面尝试此操作,因为您需要另一个循环来访问 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>`
    

    【讨论】:

    • 这是我认为我可能需要的很长的行,但现在我遇到了一个错误。它正在等待我的 server.js 文件上的捕获或异步或捕获。听起来对吗?
    • 你可以使用 catch
    • 我追踪到 ejs 代码的 catch 错误,仍在努力修复它。
    • 在您的示例中,第二个 for 循环中缺少左大括号,遗憾的是我花了很长时间才注意到这一点。我会帮你编辑的,谢谢!
    【解决方案2】:

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

     var myObj= {
       "_id" : ObjectId("5e67c84a65a2893029991863"),
       "number" : 5,
       "contact" : [{
         "_id": ObjectId("5e69a33a0208203268813e01"),
           "email": "dhenley@gmail.com"
       }]
     };
    

    你必须像下面这样循环你的数据:-

    <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

    【讨论】:

    • 我以前试过这种方式,它不喜欢 myObj.contact.length 它说长度未定义。从我读到的你不能在这里做点符号。
    • @BrandoThom 请添加您的 JSON 格式。所以我可以更好地帮助你。
    猜你喜欢
    • 1970-01-01
    • 2019-08-21
    • 2019-06-05
    • 2017-04-17
    • 2023-04-10
    • 2019-02-23
    • 1970-01-01
    • 2021-03-16
    • 2013-12-11
    相关资源
    最近更新 更多