當我嘗試使用 Mongoose 將我的應用程式與我的資料庫連接時遇到問題。已經嘗試了我在谷歌上找到的以下解決方案:
- 在 Windows 上重新啟動 MongoDB 服務
- 使用位于 mongodb 的 bin 檔案中的 cmd 手動打開資料庫
但我無法解決它。誰能幫我 ?
//my connection
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/notes-db-app',{
useNewUrlParser: true,
useUnifiedTopology: true
})
.then(db => console.log('DB is connected'))
.catch(err => console.log(err));
扔給我,這個錯誤
MongooseServerSelectionError: connect ECONNREFUSED ::1:27017 at NativeConnection.Connection.openUri (C:\Users\ivan\Desktop\NodeJS\notes-app\node_modules\mongoose\lib\connection.js:797:32) 在 C:\Users \ivan\Desktop\NodeJS\notes-app\node_modules\mongoose\lib\index.js:330:10 在 C:\Users\ivan\Desktop\NodeJS\notes-app\node_modules\mongoose\lib\helpers\promiseOrCallback。 js:32:5 at new Promise () at promiseOrCallback (C:\Users\ivan\Desktop\NodeJS\notes-app\node_modules\mongoose\lib\helpers\promiseOrCallback.js:31:10) 在 Mongoose._promiseOrCallback (C :\Users\ivan\Desktop\NodeJS\notes-app\node_modules\mongoose\lib\index.js:1151:10) 在 Mongoose.connect (C:\Users\ivan\Desktop\NodeJS\notes-app\node_modules\ mongoose\lib\index.js:329:20) 在物件。(C:\Users\ivan\Desktop\NodeJS\notes-app\src\db.js:3:10)
在 Module._compile (node:internal/modules/cjs/loader:1095:14) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1147:10) {
reason: TopologyDescription { type: '未知',服務器:Map(1) { 'localhost:27017' => [ServerDescription] },陳舊:false,兼容:true,heartbeatFrequencyMS:10000,localThresholdMS:15,logicalSessionTimeoutMinutes:undefined } }
我嘗試像這樣將埠放在我的連接代碼上
//my connection
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/notes-db-app',{
useNewUrlParser: true,
useUnifiedTopology: true
})
.then(db => console.log('DB is connected'))
.catch(err => console.log(err));
它給我拋出了另一個錯誤
MongooseServerSelectionError: Invalid message size: 1347703880, max allowed: 67108864 at NativeConnection.Connection.openUri (C:\Users\ivan\Desktop\NodeJS\notes-app\node_modules\mongoose\lib\connection.js:797:32) at C:\Users\ivan\Desktop\NodeJS\notes-app\node_modules\mongoose\lib\index.js:330:10 at C:\Users\ivan\Desktop\NodeJS\notes-app\node_modules\mongoose\lib\helpers\promiseOrCallback.js:32:5 at new Promise () at promiseOrCallback (C:\Users\ivan\Desktop\NodeJS\notes-app\node_modules\mongoose\lib\helpers\promiseOrCallback.js:31:10) at Mongoose._promiseOrCallback (C:\Users\ivan\Desktop\NodeJS\notes-app\node_modules\mongoose\lib\index.js:1151:10) at Mongoose.connect (C:\Users\ivan\Desktop\NodeJS\notes-app\node_modules\mongoose\lib\index.js:329:20) at Object. (C:\Users\ivan\Desktop\NodeJS\notes-app\src\db.js:3:10)
at Module._compile (node:internal/modules/cjs/loader:1095:14) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1147:10) {
reason: TopologyDescription { type: 'Unknown', servers: Map(1) { 'localhost:3000' => [ServerDescription] }, stale: false, compatible: true, heartbeatFrequencyMS: 10000, localThresholdMS: 15, logicalSessionTimeoutMinutes: undefined } }
uj5u.com熱心網友回復:
可能您要連接的服務器的主機名/IP 設定不正確。
我習慣將該錯誤視為:
MongooseServerSelectionError: connect ECONNREFUSED <hostname/hostIP>:<port>
在您發布的控制臺日志中,該<hostname/hostIP>部分格式錯誤/丟失。
示例- 對于在埠27017上本地運行的 mongodb 服務器,這是服務器關閉時的錯誤:
MongooseServerSelectionError: connect ECONNREFUSED 127.0.0.1:27017
如果您使用 mongodb URI 連接到資料庫,請確保它看起來像這樣
"mongodb://<hostname/hostIP>:<port>"
uj5u.com熱心網友回復:
我終于解決了。
啟用 MongoDB 默認禁用的 IPV6。在 CMD 上使用以下命令列:
mongod --ipv6
然后再試一次連接,它的作業原理!
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/notes-db-app',{
useNewUrlParser: true,
useUnifiedTopology: true
})
.then(db => console.log('DB is connected'))
.catch(err => console.log(err));
代表提問者發表
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/350150.html
標籤:javascript node.js mongodb mongoose
下一篇:獲取特定型別的所有書籍
