我有一些Nunjucks模板块,只想在特定环境下进行渲染。然而我好像无法访问NODE_ENV
变量。我尝试了这个:
{% if process.env.NODE_ENV === 'development' %}
<div>rendering some stuff here</div>
{% endif %}
不过,这对我似乎没用。它好像并不知道process.env.NODE_ENV
是什么。
在模板中是否可以像这样访问环境变量?
我有一些Nunjucks模板块,只想在特定环境下进行渲染。然而我好像无法访问NODE_ENV
变量。我尝试了这个:
{% if process.env.NODE_ENV === 'development' %}
<div>rendering some stuff here</div>
{% endif %}
不过,这对我似乎没用。它好像并不知道process.env.NODE_ENV
是什么。
在模板中是否可以像这样访问环境变量?
app.js
中最终做了以下操作。nunjucks.configure('views', {
...
}).addGlobal('NODE_ENV', process.env.NODE_ENV)
NODE_ENV
。Use addGlobal
to define function which returns environment
var nunjucks = require('nunjucks');
var env = nunjucks.configure();
env.addGlobal('$environment', () => process.env.NODE_ENV || 'development');
var res = nunjucks.renderString(`{{$environment()}}`);
console.log(res);
Define $environment
as global.
Set res.locals.environment
in middleware
const app = express();
app.use(function (req, res, next) {
res.locals.$environment = process.env.NODE_ENV || 'development';
next();
});
// In nunjucks template
{{$environment}}