【问题标题】:NodeJS connection error with mongoDBNodeJS与mongoDB的连接错误
【发布时间】:2015-05-31 22:42:46
【问题描述】:

我在将我的 socketIO 应用程序(使用 nodeJS 制作)与我的 mongoDB 连接时遇到问题。 我尝试连接远程服务器,但它引发了错误

这是我的代码(在 mongoDB 中没有设置用户/密码):

   var url = "mongodb://192.168.1.5:27017/DB"

   MongoClient.connect(url, function(err, db) {
           console.log("test")
           if (!err) {
                   console.log("test");
           }
           else {
                   console.dir(err)
           throw err
           }
   //  db.close();
   });

这是我启动服务器并尝试在导航器中启动应用程序的时候: 服务器监听 80 端口:

{ [MongoError: connect ECONNREFUSED] name: 'MongoError', message: 'connect ECONNREFUSED' }
/root/fys-realtime/examples/chat/node_modules/mongodb/lib/server.js:228
        process.nextTick(function() { throw err; })
                                            ^
Error
    at Error.MongoError (/root/fys-realtime/examples/chat/node_modules/mongodb/node_modules/mongodb-core/lib/error.js:13:17)
    at Server.destroy (/root/fys-realtime/examples/chat/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:629:47)
    at Server.close (/root/fys-realtime/examples/chat/node_modules/mongodb/lib/server.js:344:17)
    at Db.close (/root/fys-realtime/examples/chat/node_modules/mongodb/lib/db.js:267:19)
    at /root/fys-realtime/examples/chat/node_modules/mongodb/lib/db.js:196:12
    at null.<anonymous> (/root/fys-realtime/examples/chat/node_modules/mongodb/lib/server.js:226:9)
    at g (events.js:180:16)
    at emit (events.js:98:17)
    at null.<anonymous> (/root/fys-realtime/examples/chat/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:238:68)
    at g (events.js:180:16)

【问题讨论】:

    标签: node.js mongodb socket.io


    【解决方案1】:

    ECONNREFUSED 错误可能有几个原因。 检查点

    • 检查您的端口是否没有为任何其他进程提供服务。
    • 检查您的 mongod 是否正在运行。
    • 检查您的 localHost 是否使用您的 id 正确配置。

    更多内容可以看this

    【讨论】:

      【解决方案2】:

      为此,您必须在 /etc/mongod.conf 中进行更改

      comment bind_ip=127.0.0.1 好像这行没有评论一样 Listen to local interface only。

      【讨论】:

      • 我不敢相信在一个明显的位置没有提到这一点......荒谬。感谢您的回答。
      【解决方案3】:

      其中一个解决方案是将 127.0.0.1 更改为公共 ip 或路由器在 /etc 中的 mongodb 配置文件中为您提供的任何内容

      【讨论】:

        【解决方案4】:

        此错误会针对多个错误返回,例如:

        • 服务器没有运行
        • 您需要对用户进行身份验证
        • 此数据库不存在
        • mongodb 端口不是默认端口

        检查这个。通常你的问题只是这些原因之一

        【讨论】:

        • 谢谢您,您如何才能发现错误并打印一些有用的东西?
        • 我在 nodeJS 项目中使用猫鼬,但错误日志通常是相同的。 MongoDB 库与回调一起使用。在 NodeJS 中,您无法使用标准的 try/catch 来捕获回调。
        • 我明白了,如果有人在我的应用程序中遇到这个错误,希望他们会在谷歌上找到它:)
        • 这个项目其实是mongoose,还没用express。
        • 我最近遇到了一个错误,我的节点服务器发出的第一个查询是对 +-400 条数据的承诺。这导致连接失败,经验教训:确保在执行批处理请求之前建立连接。
        猜你喜欢
        • 1970-01-01
        • 2016-12-05
        • 2021-03-17
        • 2021-08-15
        • 2020-05-20
        • 2017-12-18
        • 2021-05-12
        • 2020-06-13
        相关资源
        最近更新 更多