我想弄清楚如何根据环境有选择地在 jade 文件中显示文本。我似乎无法弄清楚如何访问我的 jade 文件中的 NODE_ENV
变量。
在我的 index.jade
文件中,我正在做:
if process.env.NODE_ENV === 'development'
h1 I am in development mode
else
h1 I am not in development mode
问题是 process.env.NODE_env
是 undefined
。
当我尝试执行:h1 #{process.env}
在 if
语句之外时,Jade 输出 [Object Object]
到这页纸。
当我尝试在 if
语句之外执行:h1 #{process.env.NODE_ENV}
时,Jade 不会在页面上输出任何内容。
我不是在运行时渲染我的 Jade 文件,而是在每次启动服务器时都将它们构建为“静态”文件。
最佳答案
任何你想在 jade 模板中访问的东西都必须在从服务器发送的本地对象中。对于流程环境之类的东西,您可以在启动应用程序时立即执行此操作:
const express = require('express');
var app = express();
app.locals.env = process.env; // though you might prefer to clone this instead of setting them equal
然后在你的jade模板中你可以做
#{env.NODE_ENV}
更新
添加以供直接使用,而不是在快速服务器中。
const pug = require('pug');
// Compile the source code
const compiledFunction = pug.compileFile('template.pug');
// Render a set of data
console.log(compiledFunction(process.env));
这会记录它,但当然您也可以使用 fs
实用程序轻松地将其写入 HTML 文件。
关于node.js - 在 Jade 文件中访问 Node 环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37354706/