43 lines
991 B
JavaScript
Raw Normal View History

2025-04-24 16:26:27 +08:00
// db.js
// 資料庫模組,提供連線與常用操作函式
2025-04-24 15:31:46 +08:00
const mongoose = require('mongoose');
2025-04-24 16:26:27 +08:00
const User = require('./userModel');
// 初始化 MongoDB 連線
function connectDB() {
mongoose.connect(process.env.MONGODB_URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
});
const db = mongoose.connection;
db.on('error', console.error.bind(console, '❌ MongoDB 連線錯誤:'));
db.once('open', () => console.log('✅ 已連線到 MongoDB'));
}
2025-04-24 15:31:46 +08:00
2025-04-24 16:26:27 +08:00
// 儲存或更新使用者資訊
async function saveUser(from, groupId) {
await User.findOneAndUpdate(
{ userId: from.id, groupId },
{
userId: from.id,
username: from.username,
groupId,
lastActive: new Date(),
},
{ upsert: true }
);
}
2025-04-24 15:31:46 +08:00
2025-04-24 16:26:27 +08:00
// 取得某群組中有講過話的使用者(依照 username 過濾)
async function getGroupUsers(groupId) {
return await User.find({ groupId });
}
2025-04-24 15:31:46 +08:00
2025-04-24 16:26:27 +08:00
module.exports = {
connectDB,
saveUser,
getGroupUsers,
};