从服务器发送一个对象到客户端(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>