在 EJS 模板中检索本地 JSON 文件数据

Retrieve local JSON file data in EJS template

我的项目是这样的:

views/
    layout.ejs
data/
    US-states.json
public/
    index.html

US-states.json 看起来像这样

{
    "DC": "District of Colombia",
    "NY": "New York",
    etc...
}

如何将此 json 数据拉入 layout.ejs 以像这样循环渲染一些 div?

<div>DC: District of Colombia</div>
<div>NY: New York</div>

我试过类似的方法,但我无法通过谷歌搜索解决方案:

var data = JSON.parse('./../data/US-states.json')
<% for(var p in data) {%>
   <div>p: data[p]</div>
<% } %>

您不应从视图中检索数据。因此,当您在后端检索到它时,您将代表您的数据的 JavaScript 对象(如您在问题中引用的数据)从业务层传递给 EJS。我不知道你用什么作为后端框架。例如,当使用 NodeJS 时:

response.render("yourEJS", {data: yourObject});

然后,在你看来,你通过JavaScript遍历对象:

<% for (aProperty in data) { %>
    <div> <% aProperty %>: <%data[aProperty]%> </div>
<% } %>