Express:在每个处理程序中部分渲染?
我有一个使用Express和Pug的小网站。每个页面都有一个导航栏,其中包含从Express:在每个处理程序中部分渲染?,express,render,partial-views,Express,Render,Partial Views,我有一个使用Express和Pug的小网站。每个页面都有一个导航栏,其中包含从用户参数中提取的用户名,页面的主要内容位于下方,该页面使用数据参数。主要内容从扩展根模板的模板呈现。两者都需要自己的参数才能正确渲染 是否有方法在每个处理程序中部分呈现视图 var-app=require('express')() 应用程序集('查看引擎','哈巴狗') app.get(“/”,(请求、恢复、下一步)=>{ var userdata=“…” req.render('/index',{user:userd
用户
参数中提取的用户名,页面的主要内容位于下方,该页面使用数据
参数。主要内容从扩展根模板的模板呈现。两者都需要自己的参数才能正确渲染
是否有方法在每个处理程序中部分呈现视图
var-app=require('express')()
应用程序集('查看引擎','哈巴狗')
app.get(“/”,(请求、恢复、下一步)=>{
var userdata=“…”
req.render('/index',{user:userdata}
next()//请求的是/page
})
app.get('/page',(请求、恢复、下一步)=>{
var moredata=“…”
请求呈现('./页/索引',{data:mroedata})
})
AFAIK这是不可能的,但作为替代方案,您可以使用实现类似的功能:
let userMiddleware = (req, res, next) => {
let userdata = '...';
res.locals.user = userdata;
next();
});
app.use(userMiddleware);
// This can stay the same:
app.get('/page', (req, res, next) => {
var moredata = '...'
req.render('./page/index', {data: mroedata})
})
这是一个中间件,它将使用户
变量可用于所有模板,在我看来这就是您想要的
您也可以将其用于特定路线,而不是全局应用:
app.get('/page', userMiddleware, (req, res) => ...);