跳到主要内容

后端层

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())