我在heroku上运行了一个node.js应用。我正在尝试将我的mongodb模块更新为" ~2.0.3"。在我当地的开发。环境一切正常。但是,当我部署到Heroku时,我得到一个" replicaSet参数必须设置"早期版本的mongodb模块没有触发的错误。我不是怎么回事。特别是,我不知道在哪里可以找到该副本集的名称。
这是显示问题的节点REPL会话的记录:
$ heroku run node --app my-app
Running `node` attached to terminal... up, run.8299
>var mongo = require('mongodb');
undefined
> var a = {}
undefined
> process.env.MONGOLAB_URI
'mongodb://UUUUU:PPPPP.mongolab.com:45970/heroku_appNNNNNNN'
> mongo.MongoClient.connect(process.env.MONGOLAB_URI, function (err, db) {
a.err = err; a.db = db; console.log('CALLED'); });
undefined
> CALLED
undefined
> a
{ err:
{ [MongoError: replicaSet parameter must be set]
name: 'MongoError',
message: 'replicaSet parameter must be set' },
db: null }
>
还有一件事:当我通过Web界面访问数据库时,我只看到两个系统集合:system.indexes和system.users。据我所知,这表明我的数据库不是replicaSet的一部分,这使整个事情变得奇怪。
答案 0 :(得分:0)
这确实是2.0.3中的一个问题。它由pull request在2.0.4中解决。
底线:如果在2.0.3中遇到“必须设置replicaSet参数”错误,请升级到2.0.4。