无法使用Node's Express访问把手模板中的对象属性

问题描述 投票:2回答:2

我在Express框架下将hbs模块用于车把:

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

像这样设置我的视图变量:

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>

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

node.js express handlebars.js
2个回答
0
投票

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

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

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.