偶尔的esc不是ejs中的一个功能

时间:2017-05-03 15:05:54

标签: javascript html express ejs

我无法弄清楚我的这个问题, 这是我的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') %>" />

如果我删除这行代码,它每次都会工作。(当然没有图像)

提前致谢

1 个答案:

答案 0 :(得分:0)

这通常在ejs模板中未定义对象时触发,这可能是您的理由。

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