expressServer/db/mongodb.config.js
LingandRX cfe9f92013 feat: 重构项目并添加 MongoDB 支持
- 新增 Prettier 配置文件,规范代码格式
- 重构用户控制器和 DAO 层代码,提高可读性和维护性
- 添加 MongoDB 数据库配置和连接逻辑
- 更新用户模型,使用 Mongoose Schema 定义
- 新增密码加密功能
- 删除 SQLite 相关代码和数据库文件
2024-12-23 23:10:22 +08:00

48 lines
1.3 KiB
JavaScript

const mongoose = require('mongoose')
// 使用环境变量存储敏感信息
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'
const authSource = process.env.MONGO_AUTH_SOURCE || 'admin'
let isConnected = false
exports.connectMongoDB = async function () {
if (isConnected) {
console.log('MongoDB 已经连接')
return
}
try {
const mongoDBUrl = `mongodb://${account}:${password}@${host}:${port}/${dbName}`
// 连接 MongoDB
await mongoose.connect(mongoDBUrl, {
useNewUrlParser: true,
useUnifiedTopology: true
})
const db = mongoose.connection
db.on('connected', () => {
console.log('MongoDB 连接成功')
isConnected = true
})
db.on('error', (err) => {
console.error('MongoDB 连接错误:', err.message)
// 可以在这里添加重试逻辑
})
db.on('close', () => {
console.log('MongoDB 连接关闭')
isConnected = false
})
console.log('MongoDB 连接初始化成功')
} catch (err) {
console.error('MongoDB 连接初始化失败:', err.message)
throw err
}
}