Get*_*awn 2 javascript node.js express pug
我使用的是express和pug,我希望在每个请求中传递一些值给pug,例如:req.session和req.path。render()每次将这些值传递给方法似乎太多余了。
因此,不要像这样做:
app.get('/', (req, res) => {
res.render('home', {session: req.session})
})
app.get('/profile', (req, res) => {
res.render('profile', {session: req.session})
})
Run Code Online (Sandbox Code Playgroud)
添加的路线越多,我需要管理的项目越多。有没有一种全局的方式可以对它们进行一次设置,app.locals从而使每个请求具有唯一性?
您可以使用一些自定义中间件和来设置每个请求中每个模板可用的变量locals。这种方法适用于Express可以使用的所有模板系统,而不仅仅是Pug。
在您的路线前放置以下物品。
app.use((req, res, next) => {
res.locals.session = req.session
next()
})
Run Code Online (Sandbox Code Playgroud)
然后,您可以在模板中这样称呼它。
h3= session.name
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
555 次 |
| 最近记录: |