无法使用Node的Express访问Handlebars模板中的对象属性

时间:2014-03-09 21:18:55

标签: node.js express handlebars.js

我在Express框架下使用hbs模块用于Handlebars:

var hbs = require('hbs');
app.set('view engine', 'html');
app.engine('html', hbs.__express);

设置我的视图var如下:

userModel.find({
    twitter: username
}, function(err, profile){
    if(err){
        return next(err);
    }
    res.render('profile.html', {
        profile: profile
    });
});

如果我在模板中执行此操作:

{{profile}}

我明白了:

{ name: 'xxxxx', twitter: 'xxxxx', avatar: 'xxxxxxxx', _id: 531cd64568282e0000000001, __v: 0, links: [], booked: [] }

然而,如果我做一些简单的事情:

<p class="profile-name">{{profile.name}}</p>

在同一个文件中,没有输出!?有什么想法吗?

2 个答案:

答案 0 :(得分:1)

使用.lean(),它可以正常工作

答案 1 :(得分:0)

仅供参考,这似乎可以解决问题:

userModel.findOne({
    twitter: username
}).lean().exec(function(err, profile) {