繁体   English   中英

在Heroku上使用Mongo.db的Node.js应用程序

[英]Node.js Application with Mongo.db on Heroku

我很难将我的node.js应用程序部署到Heroku,因为我的mongo.db数据库存在问题。

我在教程中看到了这种方法,我非常喜欢它。 它看起来很干净,位于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)

当我使用我的MONGOLAB_URI在我的config.js文件中的开发对象中更改mongodb://localhost/minidatabase ,heroku工作正常,但这次我的本地服务器出现问题。 我想,指定不同配置的重点不是每次环境从开发切换到生产时都改变URI,但似乎我的应用程序只是假设它一直处于生产模式。

最好创建一个本地.env文件并使用Foreman(与Heroku Toolbelt一起安装)来启动您的应用程序。

你应该把它放在一个本地的.env文件中:

DATABASE_URI=mongodb://localhost/minidatabase

并编辑您的源代码以引用数据库:

mongoose.connect(process.env.DATABASE_URI)

然后使用以下命令启动app:

foreman start

如果您不知道如何安装工头,请查看https://toolbelt.herokuapp.com/另外,请记住运行以下命令在Heroku中设置URI:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM