我有一个生产环境名称为foo
的Express.js应用程序。所以我开始我的应用程序,如NODE_ENV=foo node app.js
。 一般来说这是一个坏主意。NODE_ENV生产替代名称
现在我的应用程序知道它在生产中,但Express不知道。无论这是一个好主意还是不一般,有没有办法告诉Express它正在生产中运行?
我有一个生产环境名称为foo
的Express.js应用程序。所以我开始我的应用程序,如NODE_ENV=foo node app.js
。 一般来说这是一个坏主意。NODE_ENV生产替代名称
现在我的应用程序知道它在生产中,但Express不知道。无论这是一个好主意还是不一般,有没有办法告诉Express它正在生产中运行?
我认为你在滥用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
运行。