首页 > 解决方案 > 如何处理 NodeJS Express App 中与 DB 的连接丢失

问题描述

我正在开发一个连接到 MongoDB 数据库的快速应用程序。我的快递服务器可能会失去与数据库的连接,但我的快递服务器应该如何应对这种情况?我准备了以下代码,在其中检查丢失的连接,然后终止应用程序。

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 });
}

对于对数据库的每次访问,我都必须检查连接错误,我认为这会使代码变得丑陋。如何改进?

标签: node.jsmongodbexpressmongoosedatabase-connection

解决方案


我认为连接到 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 };


推荐阅读