我正在尝试构建一个express.js应用程序,我想将一些数据传递到我的主布局。例如,我在每个页面上使用的导航链接列表。我知道如何将数据传递到单个 View - 例如:
app.get('/', (req, res) => {
res.render('index', { pageTitle: 'Home' });
}
但是如果我想将数据传递到我的主布局(而不是单个 View )怎么办?例如,假设我将链接列表放入出现在每个页面上的标题导航栏中。
如何将该数据传递到我的主布局中?
谢谢。
最佳答案
比使用 app.locals
更好的解决方案是设置一个在每个路由之前运行的中间件。
app.use((req,res,next) => {
res.locals.navLinks = [
// array data
];
next()
});
将在任何 HTTP 请求之前运行,并在每个路由之前设置 navLinks。
这将导致 navLinks
仅在请求生命周期内有效,并且不会污染 app.locals
。 (这将在应用程序的整个生命周期中持续存在)。
关于javascript - 如何在 ExpressJS 中处理全局数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62951043/