Nunjucks模板中如何访问NODE_ENV?
How do access NODE_ENV in Nunjucks template?
我有一些 Nunjucks 模板块,我只想在特定环境中渲染。我似乎无法访问 NODE_ENV
变量。我试过这个:
{% if process.env.NODE_ENV === 'development' %}
<div>rendering some stuff here</div>
{% endif %}
不过这似乎对我不起作用。它似乎不知道 process.env.NODE_ENV
是什么。
是否可以在模板中访问这样的环境变量?
您可以使用以下变体之一:
使用addGlobal
定义returns环境
的函数
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}}
我最终在 app.js
中执行了以下操作
nunjucks.configure('views', {
...
}).addGlobal('NODE_ENV', process.env.NODE_ENV)
这只是将 NODE_ENV
添加为我的 Nunjucks 模板中的全局可访问变量。
我有一些 Nunjucks 模板块,我只想在特定环境中渲染。我似乎无法访问 NODE_ENV
变量。我试过这个:
{% if process.env.NODE_ENV === 'development' %}
<div>rendering some stuff here</div>
{% endif %}
不过这似乎对我不起作用。它似乎不知道 process.env.NODE_ENV
是什么。
是否可以在模板中访问这样的环境变量?
您可以使用以下变体之一:
使用
的函数addGlobal
定义returns环境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}}
我最终在 app.js
nunjucks.configure('views', {
...
}).addGlobal('NODE_ENV', process.env.NODE_ENV)
这只是将 NODE_ENV
添加为我的 Nunjucks 模板中的全局可访问变量。