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的连接错误的主要内容,如果未能解决你的问题,请参考以下文章
Node.js 和 MongoDB Atlas Mongoose 连接错误