NODE_ENV生产替代名称

时间:2016-02-12 10:03:42

标签: node.js express

我有一个Express.js应用程序,其生产环境名称为foo。所以我开始使用NODE_ENV=foo node app.js这样的应用。 一般来说这是个坏主意

现在我的应用程序知道它已投入生产,但Express并不知道。无论这是否是一个好主意,有没有办法告诉Express它在生产中运行?

1 个答案:

答案 0 :(得分:3)

我认为你在滥用NODE_ENV设置。如果您将值设置为production,即。您在生产环境中正在运行Node(您恰好称之为foo),Express would read it automatically

如果您真的必须将app.set('env', 'production');用于其他目的,则可以使用NODE_ENV来设置模式。然后,您需要一种方法来告诉您的应用程序是否处于生产模式,例如

if (process.env.NODE_ENV === 'foo') {
  app.set('env', 'production');
}

或引入另一个环境变量并使用其值:app.set('env', process.env.REAL_NODE_ENV);然后使用NODE_ENV=foo REAL_NODE_ENV=production node app.js

运行

我仍然建议使用另一个环境变量而不是NODE_ENV来告诉您的应用它在foo上运行。