我有一个Express.js应用程序,其生产环境名称为foo
。所以我开始使用NODE_ENV=foo node app.js
这样的应用。 一般来说这是个坏主意。
现在我的应用程序知道它已投入生产,但Express并不知道。无论这是否是一个好主意,有没有办法告诉Express它在生产中运行?
答案 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
上运行。