can';t使用heroku上的node.js连接到mongolab
我无法让node.js和mongodb与mongolab一起在heroku上工作。我已经阅读了其他问题,如和,但我仍然无法设置我的连接。日志中显示[错误:无法连接到…] 我从MONGOLAB_URI进程环境中获取了数据库、主机和端口。我有以下代码:can';t使用heroku上的node.js连接到mongolab,node.js,mongodb,heroku,mlab,Node.js,Mongodb,Heroku,Mlab,我无法让node.js和mongodb与mongolab一起在heroku上工作。我已经阅读了其他问题,如和,但我仍然无法设置我的连接。日志中显示[错误:无法连接到…] 我从MONGOLAB_URI进程环境中获取了数据库、主机和端口。我有以下代码: var mongoUri = mongodb://heroku_app17328644:{password}@ds037518.mongolab.com //taken from process.env.MONGOLAB_URI var host
var mongoUri = mongodb://heroku_app17328644:{password}@ds037518.mongolab.com //taken from process.env.MONGOLAB_URI
var host = 'mongodb://heroku_appXXXXXX:{password}@ds037518.mongolab.com';
var port = '37518';
var database = 'heroku_appXXXXXX';
Provider.db = new Db(database, new Server(host, port, { safe: true }, { auto_reconnect: true }, {}));
Provider.db.open(function(err, db){
console.log(db); //null
if (err) console.log(err);
else console.log('success');
});
我做错了什么?核心问题似乎是您试图使用MongoDB URI作为主机名 下面介绍如何使用URI和进行连接:
var mongodb=require('mongodb');
var uri='1〕mongodb://user:pass@主机:端口/db';
mongodb.MongoClient.connect(uri,函数(err,db){
/*冒险*/
});
当然,您需要将uri
中的用户
、通行证
、主机
、端口
、和数据库
替换为实际的连接参数。如果您正在使用,则可以从以下环境中获取URI:
var uri=process.env.mongollab_uri;
使用MongoClient
safe模式时,默认设置为安全模式,因此该选项可以省略。要指定自动重新连接
,只需将其作为服务器选项传递即可
var mongodb=require('mongodb');
var uri='1〕mongodb://user:pass@主机:端口/db';
mongodb.MongoClient.connect(uri,{server:{auto_reconnect:true}},函数(err,db){
/*冒险*/
});
以下是我的做法。这样,当在Heroku上部署和运行时,我的应用程序连接到开发机器上的“测试”数据库和“mongolab”数据库
mongoose = require("mongoose");
mongoURI = 'mongodb://localhost/test';
mongoose.connect(process.env.MONGOLAB_URI || mongoURI);
在我自己的例子中,我查询了配置设置
heroku config
,结果发现mongodb被添加为mongodb\u URI
因此,我在URI中添加了process.env.MONGODB_URI,如:
var uri = process.env.MONGODB_URI || process.env.MONGOHQ_URL || process.env.MONGOLAB_URI;
您收到的错误消息是什么?他收到了
错误:无法连接到…
并且db
为空:)这不是完整的错误消息…[错误:无法连接到]mongodb://heroku_appXXXXXX:{password}@ds037518.mongolab.com]这是我遇到的错误,我也有同样的问题。当我执行'heroku config'时,它不会返回MONGODB_URI,它只返回heroku链接。我也尝试过这个“heroku config:get MONGODB_URI”,但它没有返回任何东西。我的代码链接是:heroku push正在工作,但日志显示无法连接到端口27017。我可能做错了什么?节点版本8.9.4