后端层
OpenTree 后端提供 API 服务和定时任务。
API 服务
GET /api/keychain # 获取所有钥匙
POST /api/keychain # 创建钥匙
PUT /api/keychain/:id # 更新钥匙
DELETE /api/keychain/:id # 删除钥匙
GET /api/favorites # 获取收藏
POST /api/favorites # 添加收藏
PUT /api/favorites/:id # 更新收藏
DELETE /api/favorites/:id # 删除收藏
GET /api/music # 获取音乐
POST /api/music/play/:id # 播放音乐
...
数据库
使用 SQLite + Sequelize ORM:
// packages/main/src/database/models/Keychain.ts
export const Keychain = sequelize.define('Keychain', {
id: { type: DataTypes.UUID, primaryKey: true },
name: { type: DataTypes.STRING, allowNull: false },
url: { type: DataTypes.STRING },
phone: { type: DataTypes.STRING },
email: { type: DataTypes.STRING },
password: { type: DataTypes.STRING, allowNull: false },
note: { type: DataTypes.TEXT },
createdAt: { type: DataTypes.DATE },
updatedAt: { type: DataTypes.DATE },
})
定时任务
// 签到提醒
cron.schedule('0 9 * * *', () => checkinReminder())
// 邮件检查
cron.schedule('*/10 * * * *', () => checkNewMails())
// 倒数日提醒
cron.schedule('0 8 * * *', () => checkCountdowns())