json - 我可以将 JSON.parse 数据呈现给 EJS 吗?

标签 json node.js express ejs

我是 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/

相关文章:

node.js - 颜色.js : Proper syntax for adding a color to a variable (string)?

python - 在 Python 中打开一个没有换行符的大型 JSON 文件进行 csv 转换 Python 2.6.6

mysql - 如何检查 JSON 是否包含字段并具有值 Sequelize MySQL (MariaDB)

javascript - SyntaxError : Unexpected identifier in selenium-webdriver/lib/http. js:454 异步执行(命令)

node.js - 使用 Node js 调用 ORCID 公共(public) api

javascript - 通过package.json创建模块

node.js - NodeJS Express - 两个端口上的单独路由

Node.js - 返回 res.status VS res.status

javascript - JSON 解析 - 名称内的单引号

java - 如何将JSON数据插入到sql server而不转换为Java bean