【Node】node连接MongoDB数据库超时错误

前言

最近使用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
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

people_king

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值