2016-02-12 72 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運行。