我在mongolab上設置了一個mongodb副本。Heroku +貓鼬連接錯誤:在集合中找不到主服務器
我正在使用nodejs + mongoose。當我試圖從我的本地機器連接時,一切都很順利。 但部署的Heroku出現不和貓鼬了奇怪的錯誤後:
[Error: no primary server found in set]
這裏是一些代碼(server.js):
async.series([
function(callback){
console.log('DB Connection: ' + siteConf.mongo_url);
mongoose.connect(siteConf.mongo_url, siteConf.mongo_options, callback);
},
function(callback){
http.createServer(app).listen(siteConf.port, callback);
}
],
function(err, results){
if (err) {
console.log(err);
}
console.log('Running in ' + (process.env.NODE_ENV || 'development') + ' mode @ ' + siteConf.uri);
}
);
這個網址我使用的連接字符串:
mongodb://username:[email protected]:39897/pm_prod,mongodb://someid-a1.mongolab.com:39897
我不明白的主要是:我的maching和heroku雲主機之間有什麼區別。
我已經嘗試刪除node_modules和npm安裝它們以確保我具有與heroku相同的版本。 (因爲heroku在每次部署時都這樣做)。
謝謝,並對不起我的英文不好
不知道我可以指導你的技術解決方案,但共享與Heroku的問題類似的經歷可能的幫助。 MongoHQ被用於數據庫。本地機器+本地MongoDB,本地機器+ MongoHQ接口工作完美。 Heroku + MongoHQ提供了錯誤,日誌不是很有幫助。花了幾天解決問題。除了基本的支持,Heroku是每月1000美元;買不起。轉移到AWS並且到目前爲止沒有問題。 – almypal