我尝试使用NodeJS连接到Heroku上的MongoHQ MongoDB时遇到了一个奇怪的错误。它以前工作过,现在已经停止工作了。我可以连接到本地机器上的数据库,所以我猜MongoHQ工作得很好。在Heroku上,以下最小示例抛出"错误:无法连接到[mongodb://xyz.mongohq.com]"。知道什么是错的吗?
var Fiber = require('fibers');
var MongoSync = require("mongo-sync");
Fiber(function() {
try {
var server = new MongoSync.Server("mongodb://xyz.mongohq.com:12345");
var db = server.db("app12345678");
db.auth("heroku", "password");
var collection = db.getCollection("my_collection");
console.log(collection.count());
} catch (e) {
console.log(e);
}
process.exit(0);
}).run();
答案 0 :(得分:0)
尝试在连接字符串中指定数据库名称和身份验证凭据。
的mongodb:// heroku上:password@xyz.mongohq.com:12345 / app12345678
您还可以尝试使用MongoClient进行连接,并按照driver readme doc。
中的说明进行连接 var MongoClient = require('mongodb').MongoClient,
format = require('util').format;
MongoClient.connect(' mongodb://heroku:password@xyz.mongohq.com:12345/app12345678', function(err, db) {
if(err) throw err;
var collection = db.collection('my_collection');
collection.insert({a:2}, function(err, docs) {
collection.count(function(err, count) {
console.log(format("count = %s", count));
});
});
});
如果仍然无效,请仔细检查所有内容 - 重新创建要连接的用户,然后从MongoHQ的管理页面复制连接字符串,替换刚刚创建的用户名和密码。