我正在开发一个连接到MongoDB数据库的express应用程序。我的express服务器可能会断开与数据库的连接,但我的expressserver应该如何应对这种情况?我准备了以下代码,在那里我检查丢失的连接,然后我杀死了应用程序。
const registerCustomer = async (req, res) => {
let validRegistrationCode;
try {
validRegistrationCode = await CustomerRegistrationCode.findOne({ code: req.body.code });
} catch (error) {
if (error instanceof MongoNetworkError || error instanceof MongooseServerSelectionError) {
console.error('Mongo | Mongoose Network Error occurred');
}
process.exit(1);
}
return res.json({ obj: validRegistrationCode });
}
对于每次访问DB,我都必须检查连接错误,我认为这会使代码变得丑陋。如何改进?
我认为连接到mongoDB的失败通常不会发生,或者在网络丢失的情况下也可能发生,或者你的路径、语法不正确,你应该做的是在设置mongoose连接到你的数据库时只检查一次,每次你保存代码时,nodemon都会帮助你检查你是否成功连接
// connect model with database
const mongoose = require('mongoose');
async function connect() {
try {
await mongoose.connect('mongodb://localhost:27017/collections_clothes', {
// useNewUrlParser: true,
// useUnifiedTopology: true,
// useCreateIndex: true,
});
console.log("Access Database Success!");
} catch (error) {
console.log("Access FAIL!");
}
}
module.exports = { connect };