2013-03-20 31 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”

相关问题