0

我正在使用 pugJS 渲染我的页面,如下所示:

res.render('test',renderVars)

此渲染使用一个布局,我需要在其中获取“测试”字符串。我的问题是:如何获取“测试”字符串以便在布局中使用它?我可以在“renderVars”中添加一个新变量,但我确信有更好的解决方案。

换句话说:如何在此模板中获取模板的名称?例如像#{templatename}什么?

提前致谢!

4

1 回答 1

0

恐怕你不能这样做。res.render 第一个参数是渲染视图模板并不意味着存储数据。您可以在 renderVars 中设置“测试”,也可以在会话中添加它,并且可以在您的布局中使用它。

在路由之前和会话设置之后将此代码添加到您的 app.js 中

//inject session into res.locals so can be rendered in UI
app.use(function (req, res, next) {
  if (req.session.message) {
    res.locals.message = req.session.message;
    delete req.session.message;
  }
  res.locals.session = req.session;

  next();
});

在视图模板中,您可以使用访问 res.locals.session 数据

#{session.theAttributeYouWant)
于 2018-06-18T19:01:39.237 回答