Javascript Heroku上带有Mongo.db的Node.js应用程序
我很难将node.js应用程序部署到Heroku,因为我的mongo.db数据库有问题 我在教程中看到了这种方法,我非常喜欢它。它看起来非常干净,位于config.js文件夹中,因此与实际应用程序分离Javascript Heroku上带有Mongo.db的Node.js应用程序,javascript,node.js,mongodb,heroku,Javascript,Node.js,Mongodb,Heroku,我很难将node.js应用程序部署到Heroku,因为我的mongo.db数据库有问题 我在教程中看到了这种方法,我非常喜欢它。它看起来非常干净,位于config.js文件夹中,因此与实际应用程序分离 module.exports = { development: { root: rootPath, db: 'mongodb://localhost/minidatabase' }, test: { root: rootPath, db: 'mongod
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)
当我改变
mongodb://localhost/minidatabase
在我的config.js文件中的development对象中,使用我的MONGOLAB_URI
heroku工作正常,但这次我的本地服务器出现了问题。我猜指定不同配置的全部目的并不是每次环境从开发切换到生产时都更改URI,但我的应用程序似乎总是假定其处于生产模式 最好创建一个本地.env文件,并使用Foreman(与Heroku Toolbelt一起安装)启动应用程序
您应该将其放在本地.env文件中:
DATABASE_URI=mongodb://localhost/minidatabase
并编辑源代码以引用数据库,如下所示:
mongoose.connect(process.env.DATABASE_URI)
然后使用以下命令启动应用程序:
foreman start
如果您不知道如何安装foreman,请查看
另外,请记住运行以下命令以在Heroku中设置URI:
heroku config:set DATABASE_URI=[the mongolab URI goes here]
我的问题不清楚吗?