代码之家  ›  专栏  ›  技术社区  ›  Jake Wilson

如何访问Nunjucks模板中的节点?

  •  0
  • Jake Wilson  · 技术社区  · 6 年前

    NODE_ENV 但变化无常。我试过这个:

    {% if process.env.NODE_ENV === 'development' %}
      <div>rendering some stuff here</div>
    {% endif %}
    

    不过,这似乎对我不起作用。它似乎不知道是什么 process.env.NODE_ENV

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

    2 回复  |  直到 6 年前
        1
  •  4
  •   Jake Wilson    6 年前

    app.js

    nunjucks.configure('views', {
      ...
    }).addGlobal('NODE_ENV', process.env.NODE_ENV)
    

    这只会增加 NODE_ENV 作为Nunjucks模板中的全局可访问变量。

        2
  •  1
  •   Aikon Mogwai    6 年前

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

    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);
      
    2. 定义 $environment 作为 global .

    3. 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}}