[英]How can I get my app to cannot connect to Mongo database?
我知道 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);
我希望這是足夠的信息。
您需要通過正確的錯誤處理與數據庫連接:
前任:
mongoose
.connect(connectionString)
.then(() => {
console.log('connected to DB')
});
})
.catch(err => {
console.log(err);
});
app.listen(3000);
app.listen()
使用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);
});
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');
}
}));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.