【问题标题】:Cannot connect to mongo on heroku due to missing replicaset parameter由于缺少副本集参数,无法连接到 Heroku 上的 mongo
【发布时间】:2014-10-25 02:11:19
【问题描述】:

我有一个在 heroku 上运行的 node.js 应用程序。我正在尝试将我的 mongodb 模块更新为“~2.0.3”。在我当地的开发者中。环境一切正常。但是,当我将其部署到 Heroku 时,我得到一个“必须设置副本集参数”错误,该错误在早期版本的 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。据我所知,这表明我的数据库不是副本集的一部分,这使整个事情变得很奇怪。

【问题讨论】:

  • 如果你可以通过 mongo shell 连接到 mongod 实例,试试rs.status()。副本集名称在返回的 JSON 对象中。
  • +1 用于提出问题、回答问题并链接到您的拉取请求!

标签: node.js mongodb heroku


【解决方案1】:

这确实是2.0.3的问题。这个pull request在2.0.4中解决了这个问题。

底线:如果在 2.0.3 中遇到“replicaSet parameter must be set”错误,请升级到 2.0.4。

【讨论】:

    猜你喜欢
    • 2021-10-30
    • 2020-07-14
    • 2013-03-30
    • 2019-11-29
    • 2015-09-26
    • 1970-01-01
    • 2016-12-09
    • 2013-05-25
    • 1970-01-01
    相关资源
    最近更新 更多