node.js – 在hbs(handlebars模板)中使用Express res.locals.someVariable

我试图将我的会话变量传递给我的把手模板,但我遇到了困难.现在我在app.configure函数中使用它:

app.use(function(req,res,next){
        res.locals.session = req.session;
        console.log(res.locals.session);
        next();
});

它正确记录到控制台,但是当我尝试在我的把手模板中使用“session”变量时,没有任何显示.这是我的模板的一部分:

<body>
        <nav>
            {{> topBarPartial}}

            {{> secondaryBarPartial}}
        </nav>
        <div>
            <p>before</p>
            {{session}}
            <p>after</p>
            {{> mainPartial}}
        </div>

        {{> footerPartial}}
</body>

以下是控制台记录的内容

{ cookie: 
   { path: '/',_expires: null,originalMaxAge: null,httpOnly: true },userId: 45253262,name: 'Austin' }

有任何想法吗?

解决方法

我终于找到了解决方案.事实证明我在说这个:

app.use(function(req,next){
        res.locals.session = req.session;
        console.log(res.locals.session);
        next();
});

app.use(app.router);

它实际上需要在app.router之前,但之后

app.use(express.session({
        secret: '***********'
    }));

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...