【问题标题】:Heroku + NodeJS + MongoHQ + MongoSync: [Error: failed to connect to [mongodb://xyz.mongohq.com]]Heroku + NodeJS + MongoHQ + MongoSync:[错误:无法连接到 [mongodb://xyz.mongohq.com]]
【发布时间】:2013-10-04 16:17:36
【问题描述】:

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

【问题讨论】:

    标签: node.js mongodb heroku mongohq


    【解决方案1】:

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

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

    【讨论】:

    • 这确实是最新版本的 MongoSync 的问题。将弄清楚确切的问题是什么。谢谢!
    猜你喜欢
    • 2012-12-22
    • 2011-11-26
    • 1970-01-01
    • 1970-01-01
    • 2019-10-16
    • 2013-08-05
    • 2014-12-27
    • 2012-08-09
    • 2020-09-13
    相关资源
    最近更新 更多