Sly*_*ght 7 json ejs node.js express
我是 NodeJS 和 Express 的新手(一般来说,对于编码)。我正在尝试将数据呈现到 EJS 视图页面,以便我可以在前端对其进行操作。它看起来像这样:
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});
});
我尝试在 EJS 文件中测试它,方法是输入<%= data %>我在浏览器中得到的输出:[object Object],[object Object]。我感觉自己少了几块。有人可以帮我吗?
谢谢
编辑:谢谢布利古什。只是想补充一点,之后我必须在 EJS 端将其转换回 JSON 才能使其正常工作。:)
您正在尝试将包含两个对象的数组打印到 ejs 模板。在模板中,您只打印字符串。
要将对象打印到模板,我们首先需要将其字符串化:
<%= JSON.stringify(str) %>
要访问数组中对象的属性,我们引用数组索引和属性键:
<%= str[0].name %>
要迭代数组并打印出所有值,我们使用forEach:
<ul>
    <% str.forEach(function(o) { %>
        <li><%= o.name %> - <%= o.age %></li>
    <% }); %>
</ul>
Eth*_*han -2
尝试这个:
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: JSON.stringify(str) });
});
在使用 将 JSON 对象传递给模板之前,您需要将其转换回字符串,否则它将仅使用返回JSON.stringify进行渲染。.toString[object Object],[object Object]
| 归档时间: | 
 | 
| 查看次数: | 17388 次 | 
| 最近记录: |