2016-10-25 39 views
0

請告訴我確切的一步一步的指示。假設我剛剛新克隆並構建了我的新應用程序MEAN.JS。它在我的本地主機上運行良好。如何將一個mean.js web應用程序部署到heroku,數據庫託管在mlab上?

現在我已經在mlabs創建了一個新的數據庫。從mlabs獲得該數據庫的URI,用戶和密鑰。

現在請告訴我如何繼續在heroku上成功部署此應用程序。


我已經試過:---

我改變了production.js文件,甚至設在ENV文件夾中的文件development.js。

我已經在這兩個文件中完成了這項工作。完成此操作後,當我在本地主機上運行應用程序時,它成功運行並且數據庫連接到mLabs。但是在heroku中,它會給出應用程序錯誤。我還包括heroku日誌。

db: { 
uri: "mongodb://xxx:[email protected]:23624/project", 
options: { 
    user: 'username', 
    pass: 'password' 
}, 
// Enable mongoose debug mode 
debug: process.env.MONGODB_DEBUG || false 

}

HEROKU LOGS

根據日誌,我認爲這是無法連接到數據庫。看到這個錯誤: -

[MongoError: connect ECONNREFUSED 127.0.0.1:27017] 
+1

在某些地方你嘗試在本地主機連接?錯誤表明應用程序沒有嘗試連接到mLab,並且是127.0.0.1:27017。如果您共享連接代碼塊,請參閱幫助。 –

回答

1

Heroku默認在生產環境中運行您的應用程序,因此您應該檢查生產配置。

以你爲基地鏈接庫,在this line它會從被稱爲MONGOHQ_URLMONGODB_URI環境變量DB網址,所以你要麼add them to Heroku與MongoLab URI或你想要的變量名的代碼替換(使確定它也是在Heroku上創建的)。

如果它在你的本地主機上運行,​​而不是在Heroku上,這意味着Heroku上的生產配置是錯誤的,你還應該確保你將生產配置文件的更改推送到Heroku倉庫。如果您想使用開發環境在Heroku上測試,則可以更改this setting

相關問題