我有点卡住,想知道是否有人可以帮助我。
我有一个明确的应用程序,我想将全局变量添加到nunjucks渲染引擎。
我在这里知道nunjucks addGlobal(http://mozilla.github.io/nunjucks/api.html#addglobal)方法文档,但不知道如何将环境绑定到我当前的配置块中。由于它似乎无法运作,我认为它与我的设置有关。
以下是我的配置设置:
const viewFolders = [
path.join(__dirname, '..', 'views')
];
// *** view engine *** //
nunjucks.configure(viewFolders, {
express: app,
autoescape: true
});
var env = new nunjucks.Environment(new nunjucks.FileSystemLoader('views'));
console.log(env);
env.addGlobal('logged_in','FROM Module');
app.set('view engine', 'html');
正如您所看到的,我按照文档和模板进行了{{logged_in}},但它没有显示任何内容。现在我的其他渲染变量工作正常。但我想我需要以某种方式将我的env链接到我的nunjucks配置?
对此事的任何帮助将不胜感激。如果我取得更多进展,请务必更新你,但我现在已经尝试了一整天,所以如果有人能发现问题,我会非常感谢你。
提前感谢我获得的任何帮助。
答案 0 :(得分:0)
使用res.locals:
包含作用于请求的响应局部变量的对象,因此仅对在请求/响应周期(如果有)期间呈现的视图可用。
答案 1 :(得分:0)
所以使用配置块。您需要将其设置为变量,然后引用该变量以设置全局变量。
例如
var env;
env = nunjucks.configure(viewFolders, {
express: app,
autoescape: true
});
env.addGlobal('logged_in','FROM Module');