所以我放置了一个 try catch 系统来检查我是否可以连接到我的 MongoDB,如果不能连接则不运行服务器。
当它确实连接得很好时,当我尝试检查错误系统时(只是console.log('error'))。 我更改了密码,它不会返回“错误”,只是运行服务器。
通用代码模型:
const express = require('express')
const app = express()
const tasks = require('./routes/tasks')
const connectDB = require('./db/connect')
// middleware
app.use(express.json())
// routes
app.get('/hello', (req, res) => {
res.send('<h2>i know how to do things</h2>')
})
app.post('/api/v1/tasks', tasks)
app.use('/api/v1/tasks', tasks)
const port = 3000;
const start = async () => {
try {
await connectDB
app.listen(port, console.log(`server is listening on port ${port}`))
} catch (error) {
console.log('error')
}
}
start()
这是 connectDB pull 的代码
const mongoose = require('mongoose')
const connectionString = "mongodb+srv://user:[email protected]/TASK-MANAGER?retryWrites=true&w=majority&appName=Cluster0"
const connectDB = (url) => {
return mongoose.connect(connectionString, {
useNewUrlParser: true,
useCreateIndex: true,
useFindAndModify: false,
useUnifiedTopology: true,
})
}
module.exports = connectDB
我已经重写了代码 3 次,但无法让它工作,我正在 YouTube 上关注“Node.js/Express 课程 - 构建 4 个项目”
我用它来覆盖所有错误边缘情况。尝试一下
const connectDB = async () => {
try {
const res = await mongoose.connect(connectionString, {
useNewUrlParser: true,
useCreateIndex: true,
useFindAndModify: false,
useUnifiedTopology: true,
});
if(!res) return console.log('Error connecting to MongoDB');
console.log('Connected to MongoDB');
} catch (error) {
console.error('Error connecting to MongoDB:', error.message);
throw new Error('Unable to connect to MongoDB');
}
};