Node.js 如何访问Nunjucks模板中的节点_ENV?

Node.js 如何访问Nunjucks模板中的节点_ENV?,node.js,express,templates,nunjucks,Node.js,Express,Templates,Nunjucks,我有一些Nunjuck模板块,我只想在某些环境中渲染它们。但我似乎无法访问节点\u ENV变量。我试过这个: {% if process.env.NODE_ENV === 'development' %} <div>rendering some stuff here</div> {% endif %} {%if process.env.NODE_env==='development%} 在这里渲染一些东西 {%endif%} 但这似乎对我不起作用。它似乎不知道什么

我有一些Nunjuck模板块,我只想在某些环境中渲染它们。但我似乎无法访问
节点\u ENV
变量。我试过这个:

{% if process.env.NODE_ENV === 'development' %}
  <div>rendering some stuff here</div>
{% endif %}
{%if process.env.NODE_env==='development%}
在这里渲染一些东西
{%endif%}
但这似乎对我不起作用。它似乎不知道什么是
process.env.NODE\u env


可以在模板中访问这样的环境变量吗?

您可以使用以下变量之一:

  • 使用
    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
    定义为

  • 在中间件中设置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\u ENV
    作为全局可访问变量添加到我的Nunjucks模板中。

    您的环境变量设置在哪里以及如何设置?在您的情况下,它可能是未定义的,那么您应该将其设置为默认值。看看这个:还有这个:我在app.js中设置了我的环境变量。