无法在EJS中引用对象

我有一个对象,我正在传递到我的模板使用EJS和我继续得到一个错误说Cannot read property 'link' of undefined ,这里是对象,这里是模板代码。

我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对象,但我不确定如何使其可见,所以我可以显示我的数据。

events是一个数组,所以不是这样的:

 events.photos.link 

你将需要使用一个数组索引,例如:

 events[0].photos.link 

或者,您将需要迭代events数组。


如果您正尝试为events数组中的每个事件创build一个新的HTML块,那么您将需要在模板中使用某种循环(例如for循环或.forEach()循环),以便循环数组的每个元素。

在本文的“创build模板”部分有一个for循环的ejs示例: http ://www.embeddedjs.com/getting_started.html