Javascript 在EJS中引用对象时遇到问题

Javascript 在EJS中引用对象时遇到问题,javascript,node.js,ejs,Javascript,Node.js,Ejs,我有一个使用EJS传递到模板中的对象,我继续收到一个错误,说无法读取未定义的的属性“link”,这是对象,这是模板代码 I console.log对象并获取以下信息: { _id: 583e4b76f1c8771c17d68ef2, username: 'asdf', __v: 0, favoriteMoments: [], favoriteEvents: [], likes: [], friends: [], moments: [], categories: [

我有一个使用EJS传递到模板中的对象,我继续收到一个错误,说
无法读取未定义的
的属性“link”,这是对象,这是模板代码

I console.log对象并获取以下信息:

{ _id: 583e4b76f1c8771c17d68ef2,
  username: 'asdf',
  __v: 0,
  favoriteMoments: [],
  favoriteEvents: [],
  likes: [],
  friends: [],
  moments: [],
  categories: [],
  events: 
   [ { _id: 583e4bf8cc11c61c2887aa38,
       title: 'asdfasdf',
       description: 'asdf',
       __v: 0,
       comments: [],
       photos: [Object],
       moments: [],
       category: [Object],
       owner: [Object] } 
] }
以下是模板:

        <div class="well event_list_page_event_boxes masonry_box">
            <div class="img-responsive">
               <a href="/event/<%= events._id %>">
                   <% if (events.photos.link === null){%>
                   <div class="event_list_page_event_photo"><p>No Image Here</p></div>
                   <% } else {%>
                   <img class="event_list_page_event_photo" src="<%= events.photos.link %>" border="0" style="max-width: 100%">

                   <% } %>
                   <%}) %>
                    <div class="row">
                        <div class="col-sm-9">
                            <h4 class="event_list_page_event_header"><%= events.title %></h4>
                        </div>
                        <div class="col-sm-3">
                            <p class="event_list_page_event_date"><%= events.date %></p>
                        </div>
                    </div>
                    <p class="event_list_page_event_description"><%= events.description %> </p>
               </a>
            </div>
        </div>


我知道它没有看到
事件。照片
对象,但我不确定如何使其可见,以便显示我的数据。

事件
是一个数组,因此:

events.photos.link
您需要使用数组索引,例如:

events[0].photos.link
或者,您需要迭代
事件
数组


如果试图为
事件
数组中的每个事件创建新的HTML块,则需要在模板中使用某种循环(例如
for
循环或
.forEach()
循环),以便可以循环数组的每个元素


在本文的“创建模板”一节中,有一个ejs的
for
循环示例:

您能用传递事件对象的代码更新您的问题吗?打印事件数组,这样您就可以了解它的结构,并解决需要迭代数组的问题,这不是
object.keys
应该做的吗?@illcrx-
object.keys()
获取对象的所有属性。它通常不用于阵列。我们无法在不了解您实际想要实现的目标的情况下进一步帮助您。你的问题并没有描述这一点,所以你说我在数组上使用对象调用,哦。我要做的是显示模板上的所有
事件
属性。在第一个代码段中,您会看到一个
events
键,该键将列出所有事件,示例中只有一个事件。将会有很多活动。我能不能把它做成一个对象,然后用它来完成?我可以拥有一个没有钥匙的对象对象吗?我真的不需要任何键,它应该只遍历事件。@illcrx-如果希望模板遍历事件,为每个事件创建一个新块,那么在模板中使用
for
循环。示例:在“创建模板”部分。再一次-你的问题没有说明你想要完成什么(你想要达到什么样的产出),所以我们无法进一步帮助你。