我需要在我的视图中访问用户对象。
在我的服务器代码中,我有:
res.render("profile.ejs", { user: userObj });
...其中userObj是一个很好的键值对象,包含我的所有数据。
在我的EJS文件中,我有类似的内容:
<h5 class="userName"><%= user.firstname %> <%= user.lastname %></h5>
......没有打印任何东西。
我知道它不起作用,因为它试图将我的userObj转换为字符串,而我需要做类似“user:JSON.stringify(userObj)”的操作,但是我如何像对象一样访问它在我看来?
-
更新
所有这些代码实际上都很好。我傻了弄清楚我的数据库查询不正确。
我以为是:
{ name: 'name', blah: 'blah' }
但它是:{ key: {name: 'name', blah: 'blah'} }
我没有注意到。
答案 0 :(得分:3)
仔细检查拼写错误和大写/小写问题。 您可以使用以下方式打印对象的内容:
var util = require('util');
console.log(util.inspect(userObj));
您不必将json转换为字符串以将其传递给视图。它应该与json一起使用。你甚至可以在express和ejs中打印一个json。它应该以递归方式打印json中的所有键值对。
在正常配置中,您可以这样做。
var userObj = {
firstname: 'Name',
lastname: 'anything'
};
res.render("profile.ejs", { user: userObj });
并在您的视图中
<h5 class="userName"><%= user.firstname %> <%= user.lastname %></h5>