出现错误时Try Catch不返回错误

问题描述 投票:0回答:1

所以我放置了一个 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 个项目”

node.js mongodb serverside-javascript
1个回答
0
投票

我用它来覆盖所有错误边缘情况。尝试一下

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');
  }
};
© www.soinside.com 2019 - 2024. All rights reserved.