我的路线中有4条不同的路线> intro.js文件,并希望为每条路线传递相同的变量。
(我正在使用nodejs express与ejs视图引擎)
// 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视图文件),因为something.common正在重复。
实际上,接收该公共变量的视图文件是常用的视图文件。该视图文件单独包含在test1,test2,test3,test4视图文件中,使用
<% include 'view_file' %>
有没有办法一次将重复的变量传递给所有路由?
遇到一些困难,可能真的很感激任何建议。
答案 0 :(得分:2)
我认为你要找的是app.locals
在express 4中,app.locals被视为全局对象。
app.locals = {
something: {
common: 'common'
}
从下面的帖子:
这些全局变量作为局部变量传递给每个视图。
更多信息:How to create global variables accessible in all views using Express / Node.JS?