【问题标题】:ExpressJs: Can't access object property from handlebars templateExpressJs:无法从车把模板访问对象属性
【发布时间】:2020-04-26 17:19:35
【问题描述】:

我的路线:

router.use(function(req, res, next) {
  res.locals.currentUser = req.user;
  next();
});

/* GET home page. */
router.get('/', function(req, res, next) {
  console.log(res.locals.currentUser.username); ==>> this is getting printed in console.
    res.render('index');
});

我的 index.handelbars

{{currentUser}} ===> this is getting displayed
{{currentUser.username}} ===> this is not

我的用户架构

const UserSchema =
    new Schema({
        fullName: String,
        username: { type: String, required: true },
        password: { type: String, required: true },
        isMember: { type: Boolean, default: false },
        isAdmin: { type: Boolean, default: false }
    });

我正在尝试访问“currentUser”对象的属性之一。虽然对象本身会显示在模板中,但它的属性不会。

【问题讨论】:

    标签: javascript node.js express handlebars.js


    【解决方案1】:

    改一下

    res.locals.currentUser = req.user;

    res.locals.currentUser = req.user.lean(); // add lean()
    

    【讨论】:

    • 也可以使用 toObject() 方法。显然,最新版本的 HandleBars 不允许您使用对象的原型方法或属性。
    猜你喜欢
    • 2016-06-23
    • 2020-09-27
    • 1970-01-01
    • 2016-09-04
    • 1970-01-01
    • 2012-05-01
    • 2015-12-24
    • 2021-11-06
    • 2014-03-10
    相关资源
    最近更新 更多