我是 NodeJS 和 Express 的新手(通常是编码)。我正在尝试将数据呈现到 EJS View 页面,以便我可以在前端对其进行操作。它看起来像这样:
app.set('view engine','ejs');
var str = JSON.parse('[{"name":"bill", "age":"26"}, {"name":"jeff", "age":"32"}]');
str.forEach(function(data){
console.log(data.name);
});
app.get('/data', function(req, res){
res.render('data', {str:str});
});
我尝试通过输入 <%= data %>
在 EJS 文件中对其进行测试我在浏览器中得到的输出是 [object Object],[object Object]。我觉得我少了一些。有人可以帮帮我吗?
谢谢
编辑: 谢谢 Booligoosh。只是想补充一点,之后我必须在 EJS 端将它转换回 JSON 才能使其工作。 :)
最佳答案
您正在尝试将包含两个对象的数组打印 到 ejs 模板。在模板中,您只打印字符串。
要将对象打印到模板,我们首先需要对其进行字符串化:
<%= JSON.stringify(str) %>
要访问数组中对象的属性,我们引用数组index 和属性key:
<%= str[0].name %>
要迭代数组并打印出我们使用forEach的所有值:
<ul>
<% str.forEach(function(o) { %>
<li><%= o.name %> - <%= o.age %></li>
<% }); %>
</ul>
关于json - 我可以将 JSON.parse 数据呈现给 EJS 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47066222/