56 lines
1.5 KiB
JavaScript
56 lines
1.5 KiB
JavaScript
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 () {
|
||
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 // 重新抛出错误,以便其他地方可以处理
|
||
}
|
||
}
|