【问题标题】:Error while deploying mean stack application in heroku在heroku中部署平均堆栈应用程序时出错
【发布时间】:2018-05-09 15:56:25
【问题描述】:

我尝试将平均堆栈应用程序部署到 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】:

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

    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 文件中。

    【讨论】:

      猜你喜欢
      • 2020-03-13
      • 2017-04-18
      • 2017-03-21
      • 2015-09-16
      • 2021-09-14
      • 2018-11-08
      • 2017-03-09
      • 1970-01-01
      • 2013-07-04
      相关资源
      最近更新 更多