expressServer/db/mongodbConfig.js

58 lines
1.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 // 重新抛出错误,以便其他地方可以处理
}
}