2013-03-20 6 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:[ Configuration and Config Vars](https://devcenter.heroku.com/articles/config-vars) –

答えて

8

ローカル環境でNODE_ENV環境変数を "development"に設定し、それをHerokuの "production"に設定します。 https://devcenter.heroku.com/articles/nodejs#setting-node-env

+0

すごい!これは完全に働いた。ありがとうございます:) – kumikoda

+5

これは私を長い間立ち往生させました。 herokuにNODE_ENVを設定します: 'heroku config:set NODE_ENV =" production "' –

0

また、次を追加して、アプリを起動することによって、ローカルであなたのオンラインデータベースにアクセスすることができます。

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

そして "ビン/ WWW nodemon NODE_ENV =生産" を使用してアプリを起動

関連する問題