## 需求 - 最好用linux开发,window可以用wsl ## 文档 - [nuxt4目录结构](https://nuxt.com/docs/4.x/directory-structure/app/layouts) - [nuxt4 API](https://nuxt.com/docs/4.x/api/nuxt-config#modulesdir) - [nitro 文档](https://nitro.build/docs/plugins) - [drizzle 文档](https://orm.drizzle.org.cn/docs/select) ## 提醒 用 Linux 开发与部署,包管理器采用 bun@1.3.11。数据库为 **postgres**(通过 `DATABASE_URL` 连接;本地可参考 `.env.example` 复制为 `.env.local`)。部署时可直接打包 `.output` 目录,在服务器环境执行迁移命令,省时省力。 ## 部署 提供最简单的部署方式: 1. `bun run build` 2. 进入`.output`文件夹 3. 编辑`.env`环境变量 4. `sh run.sh` 不采用重量级的`docker`,可以直接打包`.output`到服务器部署,数据库目前只支持`sqlite`。 ## 用户数据导出 API 已登录用户可通过以下接口发起并获取导出结果: 1. `POST /api/me/export/request` - 用途:创建导出任务并异步执行。 - 请求体:`{ "maskPolicy": "masked" | "raw" }`(可省略,默认 `masked`)。 - 返回示例:`{ "code": 0, "data": { "taskId": 123, "status": "pending" } }` 2. `GET /api/me/export/tasks` - 用途:查询当前用户导出任务列表。 - 返回数据包含:`id`、`status`、`maskPolicy`、`outputName`、`totalBytes`、`errorCode`、`errorMessage`、`createdAt`、`updatedAt`、`expiresAt`。 3. `GET /api/me/export/tasks/:id/download` - 用途:下载已完成任务的 `manifest.json`。 - 说明:仅可下载当前用户自己的任务;任务未完成会返回 `409`,已过期返回 `410`。