偶尔ESC不EJS功能

问题描述:

我是有麻烦搞清楚我的这个问题, 这里是我的EJS代码偶尔ESC不EJS功能

<div class="row"> 
     <% for (var i = 0; i < posts.length; i++) { %> 

     <div class=<%if(posts.length>1){%>"col-xs-12 col-sm-6 col-md-6"<%}else{%>"col-sm-12" <%}%> > 
      <div class="thumbnail col-sm-12 col-md-12"> 

      <img src="data:image/jpeg;base64,<%= posts[i].file[0].buffer.toString('base64') %>" /> 
      <div class="caption"> 
       <h3><%= posts[i].title %></h3> 
       <ul> 
        <li>Product Type: <%= posts[i].category %></li> 
        <li>Suburb: <%= posts[i].suburb %></li> 
        <li>Description: <%= posts[i].description %></li> 
        <li>Target: <%= posts[i].target %></li> 
       </ul> 
       <p><a href="#" class="btn btn-primary" role="button">Details</a> <a href="#" class="btn btn-default" role="button">Wishlist</a></p> 
      </div> 
      </div> 
     </div> 
     <% }; %> 
    </div> 

它会显示一堆的产品信息,包括图像部分,但有时我得到typeError - esc不是一个函数,有时它可以正常工作。 我注意到的问题是与线:

<img src="data:image/jpeg;base64,<%= posts[i].file[0].buffer.toString('base64') %>" /> 

如果我删除此行的代码,这将每工作时间(当然没有图像)

在此先感谢

这通常当一个对象在ejs模板中未定义时触发,这可能是您的情况的原因。

检查每次迭代中是否有值posts[i]。解决了这个问题。