我在 mongolab 上有一个 mongodb 副本集。
我正在使用 nodejs + mongoose。当我尝试从本地计算机连接时,一切正常。但是在部署到 heroku 之后,发生了一些错误,并且 mongoose 出现了奇怪的错误:
[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:password@someid-a0.mongolab.com:39897/pm_prod,mongodb://someid-a1.mongolab.com:39897
我不明白的主要事情是:我的机器和heroku云托管有什么区别。
我已经尝试删除 node_modules 并 npm install 它们以确保我具有与 heroku 相同的版本。(因为 heroku 在每次部署时都会这样做)。
谢谢,对不起我的英语不好