NodeJS与mongoDB的连接错误

Posted

技术标签:

【中文标题】NodeJS与mongoDB的连接错误【英文标题】:NodeJS connection error with 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)

【问题讨论】:

【参考方案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 条数据的承诺。这导致连接失败,经验教训:确保在执行批处理请求之前建立连接。

以上是关于NodeJS与mongoDB的连接错误的主要内容,如果未能解决你的问题,请参考以下文章

NodeJS的MongoDB连接错误

运行app.js文件时nodejs Mongodb错误

Node.js 和 MongoDB Atlas Mongoose 连接错误

kettle如何连接mongodb

MongoDB Atlas 连接在 Heroku for NodeJS 上不起作用

MongoDB 与 Docker “首次连接时无法连接到服务器 [localhost:27017]”