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

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

通過查找資料發(fā)現(xiàn),報錯原因是nodejs在后臺使用 ipv6,所以 localhost 不是指向 127.0.0.1 而是指向 :::1。
三、解決辦法
1.降級node版本到16以下,包含16;
2.url使用ip mongodb://127.0.0.1:27017/xxx。
通過實踐證明:
如果node版本在16及以上則選擇方法一,否則方法二仍會出現(xiàn)同樣的報錯信息,此時選擇方法一。
四、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版本,但是上圖沒有,可以通過底部提示的網(wǎng)址查看完整的版本信息以及對應的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配置環(huán)境變量:此電腦 -> 屬性 -> 高級系統(tǒng)設(shè)置 -> 環(huán)境變量 -> 系統(tǒng)變量 -> path -> 編輯 -> 新建 -> node的安裝路徑


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

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

