NodeJS/Express:隐式地将数据从自定义中间件推送到渲染调用

NodeJS/Express: implicitly push data from custom middleware into render call

本文关键字:中间件 自定义 调用 数据 Express NodeJS      更新时间:2023-09-26

我使用NodeJS/Express3.

我有一些自定义中间件,它根据cookie和URL从数据库中检索一些数据。

我想在基本模板中访问这些数据(用于所有页面)。

我可以通过将数据附加到req,然后使用res.render('template', {foo: req.foo, ...page specific data...});来显式地做到这一点

我想让这个隐式,所以当我添加(或删除)自定义中间件时,我不必改变每个渲染调用。

  • 是否有一种方法可以使数据从自定义中间件可用来渲染,而不必将其添加到req并显式地通过每个单个渲染请求传递它。

我正在使用LinkedIn版本的dust.js模板,但我认为这个问题是模板引擎不可知的。

我认为答案可能在于res.locals。http://expressjs.com/api.html res.locals