请告诉我确切的分步说明。假设我刚刚克隆并构建了我的新MEAN.JS应用程序。它在我的localhost上正常运行。
现在我在mlabs创建了一个新的数据库。从mlabs获得该数据库的URI,用户和密钥。
现在请告诉我如何在heroku上成功部署此应用程序。
我尝试了什么:---
我更改了production.js文件,甚至是env文件夹中的development.js文件。
我已经在这两个文件中完成了这个。执行此操作后,当我在localhost上运行应用程序时,它成功运行并且数据库连接到mLabs。但是在heroku中,它会给出应用程序错误。我还包括heroku日志。
db: {
uri: "mongodb://xxx:mLabxxx@ds023624.mlab.com:23624/project",
options: {
user: 'username',
pass: 'password'
},
// Enable mongoose debug mode
debug: process.env.MONGODB_DEBUG || false
}
根据日志,我认为它无法连接到数据库。看到这个错误: -
[MongoError: connect ECONNREFUSED 127.0.0.1:27017]
答案 0 :(得分:1)
Heroku默认在生产环境中运行您的应用,因此您应该检查生产配置。
将您链接的存储库作为基础,在this line中,它从名为MONGOHQ_URL
或MONGODB_URI
的环境变量中获取数据库网址,因此您应该add them to Heroku MongoLab URI或用您想要的变量名替换代码(确保它也是在Heroku上创建的)。
如果它适用于您的localhost而不是Heroku,则意味着Heroku上的生产配置错误,您还应该确保将生产配置文件的更改推送到Heroku存储库。如果要使用开发环境在Heroku上进行测试,可以更改this setting。