如何在 mongoLab 和 Heroku 服务器中使用 mongo URI
Posted
技术标签:
【中文标题】如何在 mongoLab 和 Heroku 服务器中使用 mongo URI【英文标题】:How to use mongo URI in mongoLab and Heroku server 【发布时间】:2013-11-10 21:47:06 【问题描述】:我正在使用 MongoDb 和 Nodejs。 Nodejs 托管在 Heroku 服务器上,而 Mongodb 通过 Heroku 插件在 MongoLab 中。
安装 MongoLab 插件后,我收到了这个 URI:
mongodb://<dbuser>:<dbpassword>@ds053148.mongolab.com:53148/heroku_app18934798
我不知道如何使用这个 URI,请帮忙?
放在哪里?什么是<dbuser>:<dbpassword
这是我在 locallhost
中关注 mongoDB 的配置
在server.js
var env = process.env.NODE_ENV || 'development',
config = require('./config/config')[env],
mongoose = require('mongoose');
var db = mongoose.connect(config.db);
在express.js
app.use(express.session(
secret: 'thissecret',
key:'express.sid',
store: new mongoStore(
url: config.db,
collection: 'sessions'
)
));
在config.js
module.exports =
development:
db: 'mongodb://localhost/mean-dev',
root: rootPath,
app:
name: 'MEAN - A Modern Stack - Development'
,
facebook:
clientID: "APP_ID",
clientSecret: "APP_SECRET",
callbackURL: "http://localhost:3000/auth/facebook/callback"
,
test:
db: 'mongodb://localhost/mean-test',
root: rootPath,
app:
name: 'MEAN - A Modern Stack - Test'
,
facebook:
clientID: "APP_ID",
clientSecret: "APP_SECRET",
callbackURL: "http://localhost:3000/auth/facebook/callback"
,
production:
db: 'mongodb://localhost/mean',
root: rootPath,
app:
name: 'MEAN - A Modern Stack - Production'
,
facebook:
clientID: "APP_ID",
clientSecret: "APP_SECRET",
callbackURL: "http://localhost:3000/auth/facebook/callback"
;
【问题讨论】:
【参考方案1】:您可以使用以下方式连接到数据库:
var mongoose = require('mongoose');
mongoose.connect('mongodb://<dbuser>:<dbpassword>@ds053148.mongolab.com:53148/<database name>');
但在你的情况下,我会将mongodb://localhost/<database name>
替换为mongodb://<dbuser>:<dbpassword>@ds053148.mongolab.com:53148/<database name>
【讨论】:
【参考方案2】:mongoURI = 'mongodb://localhost/test';
MONGOLAB_URI = "mongodb://<admin>:<admin>@ds3232.mlab.com:23213/abcd"
mongoose.connect(MONGOLAB_URI || mongoURI)
【讨论】:
您能否解释一下您的解决方案在做什么,而不是仅仅粘贴一段代码。 这实际上是 IMO 的最佳答案,通过阅读代码 @N 也很明显【参考方案3】:module.exports =
development:
db: 'mongodb://your_user_name:your_password@ds053148.mongolab.com:53148/heroku_app18934798',
root: rootPath,
app:
name: 'MEAN - A Modern Stack - Development'
,
facebook:
clientID: "APP_ID",
clientSecret: "APP_SECRET",
callbackURL: "http://localhost:3000/auth/facebook/callback"
,
test:
db: 'mongodb://your_user_name:your_password@ds053148.mongolab.com:53148/heroku_app18934798',
root: rootPath,
app:
name: 'MEAN - A Modern Stack - Test'
,
facebook:
clientID: "APP_ID",
clientSecret: "APP_SECRET",
callbackURL: "http://localhost:3000/auth/facebook/callback"
,
production:
db: 'mongodb://your_user_name:your_password@ds053148.mongolab.com:53148/heroku_app18934798',
root: rootPath,
app:
name: 'MEAN - A Modern Stack - Production'
,
facebook:
clientID: "APP_ID",
clientSecret: "APP_SECRET",
callbackURL: "http://localhost:3000/auth/facebook/callback"
;
将此粘贴到您的 config.js 文件中,并将 your_user_name
替换为您的用户名,并将 your_password
替换为您的密码以获取连接。
【讨论】:
以上是关于如何在 mongoLab 和 Heroku 服务器中使用 mongo URI的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 MongoLab 在 Heroku 上设置 MongoDB 数据库?
如何从 python 使用 mongolab 插件到 Heroku?
如何从 python 使用 mongolab 插件到 Heroku?