const mongoose = require('mongoose') require('dotenv').config() // 加载 .env 文件 // 使用环境变量存储敏感信息 const account = process.env.MONGO_ACCOUNT const password = process.env.MONGO_PASSWORD const host = process.env.MONGO_HOST || '122.152.201.90' const port = process.env.MONGO_PORT || '27017' // const dbName = process.env.MONGO_DB_NAME || 'customer' let isConnected = false exports.connectMongoDB = async function () { if (process.env.NODE_ENV === 'development') { console.log(account, password, host, port) } // 如果已经连接,不再重复连接 if (isConnected) { console.log('MongoDB 已经连接') return } try { try { const mongoDBUrl = `mongodb://${account}:${password}@${host}:${port}` // 连接 MongoDB,不再需要 useNewUrlParser 和 useUnifiedTopology await mongoose.connect(mongoDBUrl) const db = mongoose.connection db.once('open', () => { console.log('MongoDB 连接成功') isConnected = true }) db.on('error', (err) => { console.error('MongoDB 连接错误:', err.message) isConnected = false }) db.on('close', () => { console.log('MongoDB 连接关闭') isConnected = false }) console.log('MongoDB 连接初始化成功') } catch (err) { console.error('MongoDB 连接初始化失败:', err.message) throw err } } catch (err) { console.error('MongoDB 连接初始化失败:', err.message) throw err // 重新抛出错误,以便其他地方可以处理 } }