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

Node.js Application with Mongo.db on Heroku

本文关键字:Node js 应用程序 db Mongo Heroku      更新时间:2023-09-26

我很难将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)

然后启动你的应用程序使用:

foreman start

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

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