// db.js // 資料庫模組,提供連線與常用操作函式 const mongoose = require('mongoose'); 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')); } // 儲存或更新使用者資訊 async function saveUser(from, groupId) { await User.findOneAndUpdate( { userId: from.id, groupId }, { userId: from.id, username: from.username, groupId, lastActive: new Date(), }, { upsert: true } ); } // 取得某群組中有講過話的使用者(依照 username 過濾) async function getGroupUsers(groupId) { return await User.find({ groupId }); } module.exports = { connectDB, saveUser, getGroupUsers, };