【问题标题】:Ejs engine with html not rendering mapped array data带有html的Ejs引擎不呈现映射的数组数据
【发布时间】:2022-08-23 20:15:29
【问题描述】:

我在使用 ejs 模板时遇到问题。如果它是一个单一的值,那么它对我来说很好。但是,如果我映射一个数组来呈现多个值,我会收到错误blogs is not defined。这是我的 Node 和 ejs 代码。
应用程序.js

app.get(\'/\', (req, res) => {
  const blogs = [
    {title: \'Blog1\', text: \'This is blog1.\'},
    {title: \'Blog2\', text: \'This is blog2.\'},
    {title: \'Blog3\', text: \'This is blog3.\'},
  ]
  res.render(\'index\', {blogs: blogs});
});

索引.ejs

<h3>All Blogs</h3>
  <% if(blogs.length > 0) { %>        //error: blogs is not defined
    <% blogs.forEach(blog => { %>

      <h4><%= blog.title %></h4>
      <p><%= blog.text %></p>

    <% }) %>
  <% } else { %>
  <p>There are no blogs to display.</p>
  <% } %>

    标签: javascript node.js express ejs


    【解决方案1】:

    此检查在定义 blogs 之前执行,抛出该错误,导致应用程序崩溃:

    if(blogs.length > 0)
    

    在检查其长度之前,您需要检查 blogs 是否存在:

    if(blogs && blogs.length > 0)
    

    【讨论】:

      猜你喜欢
      • 2022-11-08
      • 1970-01-01
      • 2013-09-16
      • 2022-01-23
      • 2020-02-16
      • 2016-02-15
      • 2021-04-27
      • 2017-07-23
      • 2020-05-10
      相关资源
      最近更新 更多