我知道 MongoDB 資料庫沒有連接,因為當我輸入時asdfasdfasdfasdf,無論哪種方式,我都會在控制臺中獲得“連接到資料庫”。
我在 mongodb 字串中有我的實際密碼而不是<passord>.
const express = require('express');
const app = express();
const Mongoose = require('mongoose');
app.get('/', (req, res) => {
res.send('We are at home')
})
//Connect to DB
Mongoose.connect(
// 'mongodb srv://myname:<password>@cluster0.9jr1t.mongodb.net/myFirstDatabase?retryWrites=true&w=majority',
'asdfasdfasdfasdf',
() => console.log('connected to DB')
)
app.listen(3000);
我希望這是足夠的資訊。
uj5u.com熱心網友回復:
您需要通過正確的錯誤處理與資料庫連接:
前任:
mongoose
.connect(connectionString)
.then(() => {
console.log('connected to DB')
});
})
.catch(err => {
console.log(err);
});
app.listen(3000);
除此之外,啟動服務器的理想方法app.listen()是在成功的資料庫連接之后。否則,服務器可能會在未連接到資料庫的情況下啟動,并可能導致復雜化。
所以我建議這樣做:
mongoose
.connect(connectionString)
.then(() => {
console.log('connected to DB');
app.listen(3000, () => {
console.log('Server is listening on port 3000');
});
})
.catch(err => {
console.log(err);
});
uj5u.com熱心網友回復:
url = 'mongodb srv://myname:' password '@cluster0.9jr1t.mongodb.net/myFirstDatabase?retryWrites=true&w=majority';
mongoose.connect(url, {
useNewUrlParser: true,
useUnifiedTopology: true
}, ((err) =>{
if(err){
console.log(err);
}
else{
console.log('db connected');
}
}));
uj5u.com熱心網友回復:
來自貓鼬檔案
mongoose.connect(uri, function(error) {
// 如果錯誤為真,則初始連接失敗。
})
不管有沒有錯誤都會執行回呼函式,回呼應該接受一個引數,并測驗連接是否成功。
另請查看有關錯誤處理的部分
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/322877.html
