2013-07-29 55 views
3

我有一個艱難的時間,因爲我有我的mongo.db數據庫問題我的Node.js應用程序部署到Heroku的..的Node.js與Mongo.db應用在Heroku

我看到這種方法在一個教程,我真的很喜歡它。它看起來很乾淨,在config.js文件夾,以便其與實際應用分離坐鎮..

module.exports = { 
    development: { 
    root: rootPath, 
    db: 'mongodb://localhost/minidatabase' 
    }, 
    test: { 
    root: rootPath, 
    db: 'mongodb://localhost/minidatabase' 
    }, 
    staging: { 
    root: rootPath, 
    db: process.env.MONGOLAB_URI 
    }, 
    production: { 
    root: rootPath, 
    db: process.env.MONGOLAB_URI 
    } 
} 

,我有這在我的app.js文件

var env = process.env.NODE_ENV || 'development' 
    , config = require('./config/config')[env] 
    , mongoose = require('mongoose') 


mongoose.connect(config.db) 

當我改變mongodb://localhost/minidatabase在我的config.js文件中的開發對象與我的MONGOLAB_URI heroku工作正常,但這次我在我的本地服務器有問題。我猜想指定不同配置的重點不在於每當環境從開發切換到生產時都要更改URI,但似乎我的應用程序始終假設它始終處於生產模式下。

+0

是我的問題不清楚? –

回答

4

這可能更好創建一個本地.env文件並使用Foreman(與Heroku Toolbelt一起安裝)來啓動您的應用程序。

你應該把這個在本地.ENV文件:

DATABASE_URI=mongodb://localhost/minidatabase 

和編輯您的源代碼來引用數據庫:

mongoose.connect(process.env.DATABASE_URI) 

然後啓動你的應用程序使用:

foreman start 

如果你不知道如何安裝領班,看看https://toolbelt.herokuapp.com/ 另外,請記住在Heroku中運行以下命令來設置URI:

heroku config:set DATABASE_URI=[the mongolab URI goes here]