expressServer/config/mongodbConfig.js
LingandRX fbbcf675d1 refactor(user): 重构用户相关代码
- 优化了用户路由、控制器、仓库和服务的代码结构
- 改进了代码的可读性和可维护性
-移除了冗余的导入和导出语句
- 统一了异步函数的定义方式- 简化了错误处理逻辑
2025-01-05 18:44:46 +08:00

49 lines
1.2 KiB
JavaScript

import mongoose from 'mongoose'
import logger from 'morgan'
import('dotenv').config()
// 使用环境变量存储敏感信息
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'
let isConnected = false
export async function connectMongoDB() {
if (process.env.NODE_ENV === 'development') {
logger({ account, password, host, port })
}
// 如果已经连接,不再重复连接
if (isConnected) {
logger('MongoDB 已经连接')
return
}
try {
const mongoDBUrl = `mongodb://${account}:${password}@${host}:${port}`
await mongoose.connect(mongoDBUrl)
mongoose.connection.on('open', () => {
logger('MongoDB 连接成功')
isConnected = true
})
mongoose.connection.on('error', (err) => {
logger('MongoDB 连接错误:', err.message)
isConnected = false
})
mongoose.connection.on('close', () => {
logger('MongoDB 连接关闭')
isConnected = false
})
} catch (err) {
logger('MongoDB 连接初始化失败:', err.message)
throw err
}
}