2013-03-20 30 views
9

我有一個簡單的節點mongo(通過mongojs)應用程序,它是在本地開發並部署在heroku上。在我的開發環境中,我想使用mongo的本地實例,而在生產中,我想使用heroku通過「process.env.MONGOLAB_URI」向我提供的實例。如何設置在Heroku上的節點快遞應用proccess.env

我目前的做法是根據環境變量設置datavase url,但我如何實際上進入生產模式?此外,我如何配置這一點,以便當我在本地機器上開發其開發模式時,當我將其上傳到heroku的生產模式?

app.configure('production', function(){ 
    // ... 
    databaseUrl = "mydb"; // the default 
}); 

app.configure('development', function(){ 
    // ... 
    databaseUrl = process.env.MONGOLAB_URI; 
}); 

db = require("mongojs").connect(databaseUrl); 
+0

Heroku的DevCenter您的應用程序:配置和配置變量](https://devcenter.heroku.com/articles/config-vars) – 2013-12-20 15:18:16

回答

8

在本地環境中設置NODE_ENV環境變量爲「development」,並在Heroku上將其設置爲「production」。 https://devcenter.heroku.com/articles/nodejs#setting-node-env

+0

真棒!這完全奏效。謝謝:) – kumikoda 2013-03-20 22:12:19

+5

這讓我陷入了很長一段時間。在heroku上設置NODE_ENV:'heroku config:set NODE_ENV =「production」' – 2014-06-17 23:09:52

0

您還可以通過添加啓動您的應用程序在本地訪問您的在線數據庫中的以下內容:

var mongoose = require('mongoose'); 
var dbURI = 'mongodb://localhost/Loc8r'; 
if (process.env.NODE_ENV === 'production') { 
    dbURI= process.env.MONGOLAB_URI; 
} 
mongoose.connect(dbURI); 

並開始與「NODE_ENV =生產nodemon斌/ WWW」

相關問題