簡體   English   中英

如何讓我的應用程序無法連接到 Mongo 數據庫?

[英]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');
    }
}));

來自貓鼬文檔

mongoose.connect(uri,函數(錯誤){
// 如果錯誤為真,則初始連接失敗。
})

不管有沒有錯誤都會執行回調函數,回調應該接受一個參數,並測試連接是否成功。

另請查看有關錯誤處理的部分

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM