如何在 Express 中始终传递 'render' 参数

How to always pass 'render' parameters in Express

我正在构建一个网站,其中一些参数需要传递给加载的每个页面的前端(即在每个页面上的导航栏中使用的文本)。目前我只是在每个 render 行中包含所有参数,但我想知道是否有更有效的方法(例如在中间件中)。以下两个参数在每个 render.

中使用
return res.render('index', {
    docTitle: i18n.__('home'),
    isLoggedIn: req.session.isLoggedIn,
})

您可以创建自己的渲染函数,在其中设置默认值并委托给 res.render:

const customResRender = (req, res, page, params = {}) => 
  res.render(page, {
    docTitle: i18n.__('home'),
    isLoggedIn: req.session.isLoggedIn,
    ...params
  });

然后,用它代替res.render:

app.get("/someHandler", (req, res) => {
  // ...
  customResRender(req, res, "index");
});