node连接MongoDB数据库错误:MongoServerSelectionError: connect ECONNREFUSED ::1:27017(解决方案)

 更新时间:2023年04月07日 10:15:00   作者:Laker 23  
使用node连接MongoDB数据库时发生报错,MongoServerSelectionError: connect ECONNREFUSED ::1:27017,本文给大家分享原因分析及解决方案,感兴趣的朋友跟随小编一起看看吧

一、问题描述

描述:使用node连接MongoDB数据库时发生报错,MongoServerSelectionError: connect ECONNREFUSED ::1:27017
如图所示:

二、原因查找

前提条件:MongoDB数据库的服务已成功启动。

在这里插入图片描述

通过查找资料发现,报错原因是nodejs在后台使用 ipv6,所以 localhost 不是指向 127.0.0.1 而是指向 :::1。

三、解决办法

1.降级node版本到16以下,包含16;
2.url使用ip mongodb://127.0.0.1:27017/xxx。

通过实践证明:
如果node版本在16及以上则选择方法一,否则方法二仍会出现同样的报错信息,此时选择方法一。

四、node版本降级

这里选择NVM管理node来重新下载node。

1.将原安装node的文件夹中的文件全部删除;
2.通过控制面板卸载node程序;

3.下载NVM管理工具: https://github.com/coreybutler/nvm-windows/releases

4.解压缩该zip文件夹并安装nvm管理工具(自由选择安装路径)。并验证nvm是否安装成功。

5.安装node.js
(1) 在命令行工具中输入nvm ls available,查看node.js的版本号:

注意: 我们要下载的是16以下的node版本,但是上图没有,可以通过底部提示的网址查看完整的版本信息以及对应的npm版本(后面会用到):

(2) 在命令行输入:nvm install node版本号 下载安装node;如:node install 15.14.0
安装成功后,输入:mvm use node版本号,表示当前你要使用这个版本的node。
验证node是否安装成功:

(3) 验证npm是否安装:

如图,表明当前我们安装的node没有自动安装npm包。

(4) 安装npm。下载对应node版本的npm版本:

查看node版本对应的npm版本:https://nodejs.org/zh-cn/download/releases/
npm下载地址:http://npm.taobao.org/mirrors/npm/

如:node15.14.0版本对应的npm版本为7.7.6

(5) 下载完成后解压到nvm安装目录的对应node版本的node_modules目录下,并将文件名改为npm:

(6) 将npm中bin目录下的npm文件和npm.cmd文件复制粘贴到node版本的根目录下:

(7) 验证npm是否安装成功:

(8) 为node.js配置环境变量:此电脑 -> 属性 -> 高级系统设置 -> 环境变量 -> 系统变量 -> path -> 编辑 -> 新建 -> node的安装路径

注意: 需重启vscode再运行node连接数据库。

到此这篇关于node连接MongoDB数据库错误:MongoServerSelectionError: connect ECONNREFUSED ::1:27017的文章就介绍到这了,更多相关node连接MongoDB数据库报错内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Nodejs多站点切换Htpps协议详解及简单实例

    Nodejs多站点切换Htpps协议详解及简单实例

    这篇文章主要介绍了Nodejs多站点切换Htpps协议详解及简单实例的相关资料,需要的朋友可以参考下
    2017-02-02
  • Node.js API详解之 V8模块用法实例分析

    Node.js API详解之 V8模块用法实例分析

    这篇文章主要介绍了Node.js API详解之 V8模块用法,结合实例形式分析了Node.js API中V8模块基本功能、函数、使用用法及操作注意事项,需要的朋友可以参考下
    2020-06-06
  • 利用nodejs读取图片并将二进制数据转换成base64格式

    利用nodejs读取图片并将二进制数据转换成base64格式

    这篇文章主要介绍了利用nodejs读取图片并将二进制数据转换成base64格式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • websocket实现Vue 3和Node.js之间的实时消息推送

    websocket实现Vue 3和Node.js之间的实时消息推送

    使用 WebSocket 实现实时消息推送是一种高效的方式,可以在客户端和服务器之间建立长连接,实现低延迟的双向通信,以下是一个简单的示例,展示如何在前端使用 Vue 3 和后端使用 Node.js 搭建一个 WebSocket 实现实时消息推送的应用
    2024-06-06
  • nvm安装方法以及安装后node不能使用解决

    nvm安装方法以及安装后node不能使用解决

    在我们的日常开发中经常会遇到这种情况,手上有好几个项目,每个项目的需求不同,进而不同项目必须依赖不同版的NodeJS运行环境,nvm应运而生,这篇文章主要给大家介绍了关于nvm安装方法以及安装后node不能使用解决的相关资料,需要的朋友可以参考下
    2023-04-04
  • Nodejs基于LRU算法实现的缓存处理操作示例

    Nodejs基于LRU算法实现的缓存处理操作示例

    这篇文章主要介绍了Nodejs基于LRU算法实现的缓存处理操作,结合具体实例形式分析了LRU算法的原理、功能以及nodejs使用LRU算法实现缓存处理操作的相关实现技巧,需要的朋友可以参考下
    2017-03-03
  • Node.js使用Middleware中间件教程详解

    Node.js使用Middleware中间件教程详解

    中间件(Middleware),特指业务流程的中间处理环节,Express中间件的调用流程-当一个请求处理时,可以连续调用多个中间件,从而对这次请求进行预处理
    2023-04-04
  • Node.js包管理器npm的具体使用

    Node.js包管理器npm的具体使用

    Node.js安装包中都带有一个重要的工具 包管理器npm,本文主要介绍了Node.js包管理器npm的具体使用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • Node.js使用定时器的三种方法

    Node.js使用定时器的三种方法

    在Node.js中使用定时器是一项常见且重要的任务,本文主要介绍了Node.js使用定时器的三种方法,包括setTimeout、setInterval和setImmediate等方法,感兴趣的可以了解一下
    2024-02-02
  • node.js学习笔记之koa框架和简单爬虫练习

    node.js学习笔记之koa框架和简单爬虫练习

    这篇文章主要介绍了node.js学习笔记之koa框架和简单爬虫练习,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12

最新评论