nodejs ejs View 引擎,一次将相同的参数传递给不同的路由



我的路由>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创建可在所有视图中访问的全局变量?

最新更新