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

Dan*_*zik 1 javascript ejs

我的项目是这样的:

views/
    layout.ejs
data/
    US-states.json
public/
    index.html
Run Code Online (Sandbox Code Playgroud)

US-states.json 看起来像这样

{
    "DC": "District of Colombia",
    "NY": "New York",
    etc...
}
Run Code Online (Sandbox Code Playgroud)

如何将这个 json 数据拉入layout.ejs以在这样的循环中呈现一些 div?

<div>DC: District of Colombia</div>
<div>NY: New York</div>
Run Code Online (Sandbox Code Playgroud)

我试过这样的事情,但我在谷歌搜索解决方案时遇到了麻烦:

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

Ele*_*ore 5

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

response.render("yourEJS", {data: yourObject});
Run Code Online (Sandbox Code Playgroud)

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

<% for (aProperty in data) { %>
    <div> <% aProperty %>: <%data[aProperty]%> </div>
<% } %>
Run Code Online (Sandbox Code Playgroud)