2013-09-28 72 views
0

我遇到了一個奇怪的錯誤,嘗試使用NodeJS連接到Heroku上的MongoHQ MongoDB。它在以前工作,現在它已停止工作。我可以連接到本地機器上的數據庫,所以我猜MongoHQ工作得很好。在Heroku上,以下最小示例會引發「錯誤:未能連接到[mongodb://xyz.mongohq.com]」。任何想法有什麼不對?Heroku + NodeJS + MongoHQ + MongoSync:[錯誤:無法連接到[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

嘗試在連接字符串中指定所有數據庫名稱和授權憑證。

mongodb://heroku:[email protected]:12345/app12345678

您也可以嘗試使用MongoClient連接,並連接作爲driver readme doc概述。

var MongoClient = require('mongodb').MongoClient, 
    format = require('util').format;  

    MongoClient.connect(' mongodb://heroku:[email protected]: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的管理頁面替換剛剛創建的用戶名和密碼的連接字符串的用戶。

+0

這確實是最新版本的MongoSync的問題。將弄清楚確切的問題是什麼。謝謝! –