0

我在尝试使用 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();
4

1 回答 1

0

尝试在连接字符串中指定数据库名称和身份验证凭据。

mongodb://heroku:password@xyz.mongohq.com:12345/app12345678

您也可以尝试使用 MongoClient 进行连接,并按照驱动程序自述文件中的说明进行连接。

 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 的管理页面复制连接字符串,替换您刚刚创建的用户名和密码。

于 2013-09-28T12:04:19.833 回答