43 lines
991 B
JavaScript
43 lines
991 B
JavaScript
// 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,
|
|
};
|