簡體   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