code/homework/server/model/TabsModel.js
2024-12-20 19:37:43 +08:00

47 lines
1.1 KiB
JavaScript

// models/TabsModel.js
import db from '../lib/db.js';
class TabsModel {
static async getAllTabs() {
await db.read();
return db.data.tabs;
}
static async getTabById(id){
await db.read();
return db.data.tabs.find(tab => tab.id === id);
}
static async addTab(tab) {
await db.read();
db.data.tabs.push(tab);
await db.write();
}
static async findTabByTitle(title) {
await db.read();
return db.data.tabs.find(tab => tab.title === title);
}
static async updateTab(tabKey, updatedTab) {
await db.read();
const tab = db.data.tabs.find(tab => tab.id === tabKey);
if (tab) {
console.log(tab,updatedTab)
// 仅更新传入的字段
Object.keys(updatedTab).forEach(key => {
// 确保只更新存在的字段,防止意外修改
if (tab.hasOwnProperty(key)) {
console.log(key)
tab[key] = updatedTab[key];
}
});
await db.write();
}
}
static async deleteTab(tabKey) {
await db.read();
db.data.tabs = db.data.tabs.filter(tab => tab.id !== tabKey);
await db.write();
}
}
export default TabsModel;