从服务器发送一个对象到客户端(node / express / ejs)
我需要访问我的视图中的用户对象。
在我的服务器代码中,我有:
res.render("profile.ejs", { user: userObj });
…其中userObj是一个很好的键值对象与我所有的数据。
在我的EJS文件中,我有这样的东西:
<h5 class="userName"><%= user.firstname %> <%= user.lastname %></h5>
不打印任何东西
我知道它不工作,因为它试图将我的userObj转换为一个string,而我需要做一些像“用户:JSON.stringify(userObj)”,而是我怎样才能像我在视图中的对象访问它?
–
更新:
所有这些代码其实都很好。 我很愚蠢,因为我的数据库查询不正确。
我以为是: { name: 'name', blah: 'blah' }
但是: { key: {name: 'name', blah: 'blah'} }
我没有注意到。
仔细检查拼写错误和大写/小写问题。 您可以使用以下命令打印对象的内容:
var util = require('util'); console.log(util.inspect(userObj));
你不必将你的JSON转换为string来传递它来查看。 它应该与json一起工作。 你甚至可以在express和ejs中打印一个json。 它应该recursion地在你的json中打印所有的键值对。
在正常的configuration中,你可以做到这一点。
var userObj = { firstname: 'Name', lastname: 'anything' }; res.render("profile.ejs", { user: userObj });
并在你看来
<h5 class="userName"><%= user.firstname %> <%= user.lastname %></h5>