我的路由>intro.js文件中有4个不同的路由,并希望为每个路由传递相同的变量。
(我正在使用带有ejs视图引擎的nodejs express(
// intro.js file
var something = {
common: 'common',
different: {
test1: 'test1',
test2: 'test2',
test3: 'test3',
test4: 'test4'
}
}
router.get('/test1', (req, res) => {
res.render('test1', {common: something.common, different: something.different.test1});
}
router.get('/test2', (req, res) => {
res.render('test2', {common: something.common, different: something.different.test2});
}
router.get('/test3', (req, res) => {
res.render('test3', {common: something.common, different: something.different.test3});
}
router.get('/test4', (req, res) => {
res.render('test4', {common: something.common, different: something.different.test4});
}
似乎有更好的方法将common(something.common(变量传递给每个路由(ejs视图文件(,因为某些东西.common正在重复。
实际上,接收该公共变量的视图文件是一个常用的视图文件。该视图文件分别包含在test1,test2,test3,test4视图文件中,使用
<% include 'view_file' %>
有没有办法一次将该重复变量传递给所有路由?
遇到一些困难,任何建议可能真的不胜感激。
我认为您正在寻找的是app.locals
在 express 4 中,app.locals 被视为全局对象。
app.locals = {
something: {
common: 'common'
}
从下面的帖子:
这些全局变量作为局部变量传递给每个视图。
详细信息:如何使用Express/Node.JS创建可在所有视图中访问的全局变量?