2016-02-12 70 views
0

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

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

回答

3

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

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

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运行。