node連接MongoDB數(shù)據(jù)庫錯(cuò)誤:MongoServerSelectionError:?connect?ECONNREFUSED?::1:27017(解決方案)
一、問題描述
描述:使用node連接MongoDB數(shù)據(jù)庫時(shí)發(fā)生報(bào)錯(cuò),MongoServerSelectionError: connect ECONNREFUSED ::1:27017
如圖所示:

二、原因查找
前提條件:MongoDB數(shù)據(jù)庫的服務(wù)已成功啟動。

通過查找資料發(fā)現(xiàn),報(bào)錯(cuò)原因是nodejs在后臺使用 ipv6,所以 localhost 不是指向 127.0.0.1 而是指向 :::1。
三、解決辦法
1.降級node版本到16以下,包含16;
2.url使用ip mongodb://127.0.0.1:27017/xxx。
通過實(shí)踐證明:
如果node版本在16及以上則選擇方法一,否則方法二仍會出現(xiàn)同樣的報(bào)錯(cuò)信息,此時(shí)選擇方法一。
四、node版本降級
這里選擇NVM管理node來重新下載node。
1.將原安裝node的文件夾中的文件全部刪除;
2.通過控制面板卸載node程序;
3.下載NVM管理工具: https://github.com/coreybutler/nvm-windows/releases

4.解壓縮該zip文件夾并安裝nvm管理工具(自由選擇安裝路徑)。并驗(yàn)證nvm是否安裝成功。


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

注意: 我們要下載的是16以下的node版本,但是上圖沒有,可以通過底部提示的網(wǎng)址查看完整的版本信息以及對應(yīng)的npm版本(后面會用到):

(2) 在命令行輸入:nvm install node版本號 下載安裝node;如:node install 15.14.0
安裝成功后,輸入:mvm use node版本號,表示當(dāng)前你要使用這個(gè)版本的node。
驗(yàn)證node是否安裝成功:

(3) 驗(yàn)證npm是否安裝:

如圖,表明當(dāng)前我們安裝的node沒有自動安裝npm包。
(4) 安裝npm。下載對應(yīng)node版本的npm版本:

查看node版本對應(yīng)的npm版本:https://nodejs.org/zh-cn/download/releases/
npm下載地址:http://npm.taobao.org/mirrors/npm/
如:node15.14.0版本對應(yīng)的npm版本為7.7.6


(5) 下載完成后解壓到nvm安裝目錄的對應(yīng)node版本的node_modules目錄下,并將文件名改為npm:

(6) 將npm中bin目錄下的npm文件和npm.cmd文件復(fù)制粘貼到node版本的根目錄下:

(7) 驗(yàn)證npm是否安裝成功:

(8) 為node.js配置環(huán)境變量:此電腦 -> 屬性 -> 高級系統(tǒng)設(shè)置 -> 環(huán)境變量 -> 系統(tǒng)變量 -> path -> 編輯 -> 新建 -> node的安裝路徑


注意: 需重啟vscode再運(yùn)行node連接數(shù)據(jù)庫。

到此這篇關(guān)于node連接MongoDB數(shù)據(jù)庫錯(cuò)誤:MongoServerSelectionError: connect ECONNREFUSED ::1:27017的文章就介紹到這了,更多相關(guān)node連接MongoDB數(shù)據(jù)庫報(bào)錯(cuò)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Nodejs多站點(diǎn)切換Htpps協(xié)議詳解及簡單實(shí)例
這篇文章主要介紹了Nodejs多站點(diǎn)切換Htpps協(xié)議詳解及簡單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-02-02
Node.js API詳解之 V8模塊用法實(shí)例分析
這篇文章主要介紹了Node.js API詳解之 V8模塊用法,結(jié)合實(shí)例形式分析了Node.js API中V8模塊基本功能、函數(shù)、使用用法及操作注意事項(xiàng),需要的朋友可以參考下2020-06-06
利用nodejs讀取圖片并將二進(jìn)制數(shù)據(jù)轉(zhuǎn)換成base64格式
這篇文章主要介紹了利用nodejs讀取圖片并將二進(jìn)制數(shù)據(jù)轉(zhuǎn)換成base64格式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08
websocket實(shí)現(xiàn)Vue?3和Node.js之間的實(shí)時(shí)消息推送
使用?WebSocket?實(shí)現(xiàn)實(shí)時(shí)消息推送是一種高效的方式,可以在客戶端和服務(wù)器之間建立長連接,實(shí)現(xiàn)低延遲的雙向通信,以下是一個(gè)簡單的示例,展示如何在前端使用?Vue?3?和后端使用?Node.js?搭建一個(gè)?WebSocket?實(shí)現(xiàn)實(shí)時(shí)消息推送的應(yīng)用2024-06-06
Nodejs基于LRU算法實(shí)現(xiàn)的緩存處理操作示例
這篇文章主要介紹了Nodejs基于LRU算法實(shí)現(xiàn)的緩存處理操作,結(jié)合具體實(shí)例形式分析了LRU算法的原理、功能以及nodejs使用LRU算法實(shí)現(xiàn)緩存處理操作的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-03-03
node.js學(xué)習(xí)筆記之koa框架和簡單爬蟲練習(xí)
這篇文章主要介紹了node.js學(xué)習(xí)筆記之koa框架和簡單爬蟲練習(xí),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-12-12

