我有一些Nunjucks模板块,我只想在某些环境中渲染。我似乎无法访问NODE_ENV
变量。我尝试过:
{% if process.env.NODE_ENV === 'development' %}
<div>rendering some stuff here</div>
{% endif %}
这似乎对我不起作用。似乎不知道process.env.NODE_ENV
是什么。
是否可以在模板中访问这样的环境变量?
答案 0 :(得分:1)
您可以使用以下变体之一:
使用addGlobal
定义返回环境的函数
var nunjucks = require('nunjucks');
var env = nunjucks.configure();
env.addGlobal('$environment', () => process.env.NODE_ENV || 'development');
var res = nunjucks.renderString(`{{$environment()}}`);
console.log(res);
将$environment
定义为global。
在中间件中设置res.locals.environment
const app = express();
app.use(function (req, res, next) {
res.locals.$environment = process.env.NODE_ENV || 'development';
next();
});
// In nunjucks template
{{$environment}}
答案 1 :(得分:1)
我最终在app.js
nunjucks.configure('views', {
...
}).addGlobal('NODE_ENV', process.env.NODE_ENV)
这只是将NODE_ENV
添加为我的Nunjucks模板中的全局可访问变量。