【Node】node连接MongoDB数据库超时错误
MongoTimeoutError: Server selection timed out after 30000 ms at Timeout._onT
·
前言
最近使用node写项目,需要连接MongoDB数据库,结果在另一台机子运行代码时发现连接超时错误,当初还以为是数据库服务没开启,但是服务是正常启动的,而且还是使用cmd运行mongod指令;于是重新安装MongoDB,问题依然存在,最后借鉴了这篇博客“node连接mongodb时出错·已解决(ECONNREFUSED错误)”,发现是localhost与127.0.0.1的区别。
报错信息
MongoTimeoutError: Server selection timed out after 30000 ms
at Timeout.setTimeout [as _onTimeout] (.../node_modules/mongodb/lib/core/sdam/server_selection.js:308:9)
at ontimeout (timers.js:482:11)
at tryOnTimeout (timers.js:317:5)
at Timer.listOnTimeout (timers.js:277:5)
name: 'MongoTimeoutError',
reason:
{ Error: connect ECONNREFUSED 127.0.0.1:27017
at Object._errnoException (util.js:1022:11)
at _exceptionWithHostPort (util.js:1044:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1198:14)
name: 'MongoNetworkError',
[Symbol(mongoErrorContextSymbol)]: {} },
[Symbol(mongoErrorContextSymbol)]: {}
解释
localhost和127.0.0.1都指向本地计算机,但它们之间有一些微妙的区别。
localhost是一个域名,它指向计算机的本地回环接口(loopback interface)IP地址(通常为127.0.0.1)。这个域名通常在本地计算机上解析为127.0.0.1,因此当您在浏览器中输入“localhost”时,它实际上会发送请求到本地计算机上的127.0.0.1地址。
127.0.0.1是本地回环接口IP地址,它指向计算机本身,通常用于测试和诊断网络应用程序。当您在浏览器中输入“127.0.0.1”时,它实际上是直接发送请求到本地计算机上的回环接口,而不需要经过网络。
所以,localhost是一个域名,它解析为127.0.0.1,而127.0.0.1是一个IP地址,它指向本地计算机上的回环接口。在大多数情况下,它们是等效的,但在某些情况下可能会有微妙的差异。
更多推荐
已为社区贡献1条内容
所有评论(0)