在Express中,我可以自动将请求对象包含为所有呈现模板的本地对象吗?

时间:2014-08-03 16:24:14

标签: node.js express

我刚开始学习Express。我发现在我的模板中,我经常想从路由处理程序中使用请求对象的属性。例如:

app.js

...
app.get('/', function (req, res){
    res.render('home.swig', {
        "req": req
    });
});
...

home.swig

...
{% if req.user %}

<p>You’re logged in!</p>

{% else %}

<p>You’re not logged in.</p>

<p><a href="/login">Log in here</a></p>

{% endif %}

有没有什么方法可以自动将请求对象包含在我的所有res.render调用中作为本地,而不是在每个调用中明确指定它?

1 个答案:

答案 0 :(得分:2)

您可以添加一小块中间件来执行此操作。它看起来像是:

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