在heroku中部署平均堆栈应用程序时出错

问题描述 投票:-1回答:1

我尝试将平均堆栈应用程序部署到Heroku,但是当我访问URL时:

https://rocky-coast-36852.herokuapp.com/%20deployed%20to%20Heroku

它显示错误:

Cannot GET /%20deployed%20to%20Heroku

此外,在尝试连接到mongoose数据库时,它显示错误:

error in database connectonMongoError: failed to connect to server [localhost:27017] on first connect [MongoError: connect ECONNREFUSED 127.0.0.1:27017]
(node:42332) DeprecationWarning: Mongoose: mpromise (mongoose's default promise library) is deprecated, plug in your own promise library instead: http://mongoosejs.com/docs/promises.html

这是我的GitHub链接:

https://github.com/saisreereddy/MyFirstApp

有人可以确定我做错了吗?任何形式的帮助都非常感谢。

heroku mongoose runtime-error mean-stack
1个回答
0
投票

这条线似乎是你的问题的原因:

mongoose.connect('mongodb://localhost:27017/contactlistapp');

据推测,您的数据库没有在您的Heroku dynos上运行,并且您正在使用Heroku托管数据库附件,如MLab。 (如果没有,配置Mongo附加组件是解决方案的第一步。)当这个附加组件添加到您的应用程序时,它将设置一个环境变量,如DATABASE_URL(参考附加文档),它将包含数据库URL,用户名,密码等

您需要在app.js中更改上面的那一行,使用类似mongoose.connect(process.env.DATABASE_URL);的东西从环境中提取该值,这应该只适用于Heroku。

现在,您还需要使用当前在app.js中硬编码的值在本地设置该环境变量。我建议使用dotenv来处理设置本地环境变量。如果您使用dotenv,请务必将.env添加到.gitignore文件中。

© www.soinside.com 2019 - 2024. All rights reserved.