【问题标题】:Globally set dynamic pug variables全局设置动态哈巴狗变量
【发布时间】:2018-05-17 12:42:05
【问题描述】:

我正在使用 express 和 pug,有一些值我想在每个请求上传递给 pug,例如:req.sessionreq.path。每次都将这些值传递给render() 方法似乎太多余了。

所以不要做这样的事情:

app.get('/', (req, res) => {
    res.render('home', {session: req.session})
})
app.get('/profile', (req, res) => {
    res.render('profile', {session: req.session})
})

添加的路线越多,我需要管理的项目就越多。除了app.locals 之外,是否有一种全局方式可以设置它们一次,以便它们在每个请求中都是唯一的?

【问题讨论】:

    标签: javascript node.js express pug


    【解决方案1】:

    您可以使用一些自定义中间件和locals 为每个请求的每个模板设置可用的变量。这种方法适用于 Express 可以使用的所有模板系统,而​​不仅仅是 Pug。

    将以下放在您的路线之前。

    app.use((req, res, next) => {
      res.locals.session = req.session
      next()
    })
    

    然后在你的模板中你可以这样调用它。

    h3= session.name
    

    【讨论】:

    • 这正是我想要的!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-13
    • 1970-01-01
    • 2018-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多