如何将JSON数据导入我的ejs模板

How can I get JSON data into my ejs template?

本文关键字:我的 ejs 模板 导入 数据 JSON      更新时间:2023-09-26

我正在尝试显示JSON数据,但出现了此错误。有人能帮我吗?

错误-->意外的令牌;在里面"/home/ubuntu/workspace/project_guest_book/views/pages/posts.ej

导致错误的代码如下:

<%  var post = require(__dirname +"/userPosts.json")
        var result= %> 
          <table>
            <% for (var i=0; i<post.length; i++){
               result += %>
                 <tr>
                    <th><% post[i].Name+ %></th>
                    <td><% post[i].Post %></td>
                 </tr>
            <% } %>
          <table>

EJS不应该像您尝试使用它的方式那样使用。

将ejs模板视为带有嵌入javascript的标记,该标记可编译为一个函数,该函数可以提供所需的数据,并返回最终的html。

因此,您不必担心将中间标记存储在变量或html片段的串联中。

检查这个小提琴的实现:

<script id="template" type="text/html">
  <table>
    <% for (var i=0; i< posts.length; i++){ %>
      <tr>
        <th><%= posts[i].Name %></th>
        <td><%= posts[i].Post %></td>
      </tr>
    <% } %>
  <table>
</script>

-

// This can be loaded from an external file:
var posts = [{
  Name: "Post1", Post: "Lorem ipsum dolor sit amet"
}, {
  Name: "Post2", Post: "Lorem ipsum consecteuter adpiscing elit"
}]
var compiledTemplate = ejs.compile(document.getElementById('template').innerText)
console.log(compiledTemplate({ posts: posts }))