docs: 更新README文档,移除后端示例和过时内容
- 删除Node.js+Express后端实现示例代码 - 移除浏览器兼容性说明 - 清理过时的功能说明(如复制直链按钮) - 简化API文档中POST请求的说明
This commit is contained in:
75
README.md
75
README.md
@@ -40,70 +40,9 @@ npx http-server -p 8000
|
||||
| 方法 | 路径 | 描述 | 请求体 | 响应 |
|
||||
|------|------|------|--------|------|
|
||||
| GET | /api/apps | 获取App列表 | - | `[{id: string, name: string, fileName: string, date: string}]` |
|
||||
| POST | /api/apps | 上传App | multipart/form-data<br>`name`: App名称(可选,不填则使用文件名作为默认值)<br>`file`: 文件 | `{success: boolean, message?: string}` |
|
||||
| POST | /api/apps | 上传App | multipart/form-data<br>`name`: App名称<br>`file`: 文件 | `{success: boolean, message?: string}` |
|
||||
| GET | /api/apps/:id | 下载指定App | - | 文件流 |
|
||||
|
||||
#### 后端实现示例(Node.js + Express)
|
||||
|
||||
```javascript
|
||||
const express = require('express');
|
||||
const multer = require('multer');
|
||||
const cors = require('cors');
|
||||
|
||||
const app = express();
|
||||
const upload = multer({ dest: 'uploads/' });
|
||||
|
||||
app.use(cors());
|
||||
|
||||
// 模拟数据存储
|
||||
let apps = [];
|
||||
|
||||
// 获取App列表
|
||||
app.get('/api/apps', (req, res) => {
|
||||
res.json(apps);
|
||||
});
|
||||
|
||||
// 上传App
|
||||
app.post('/api/apps', upload.single('file'), (req, res) => {
|
||||
let { name } = req.body;
|
||||
const file = req.file;
|
||||
|
||||
if (!file) {
|
||||
return res.json({ success: false, message: '缺少文件' });
|
||||
}
|
||||
|
||||
// 如果name为空,使用文件名作为默认值(去除扩展名)
|
||||
if (!name || !name.trim()) {
|
||||
name = file.originalname.replace(/\.[^/.]+$/, '');
|
||||
}
|
||||
|
||||
const app = {
|
||||
id: Date.now().toString(),
|
||||
name,
|
||||
fileName: file.originalname,
|
||||
date: new Date().toLocaleString('zh-CN')
|
||||
};
|
||||
|
||||
apps.unshift(app);
|
||||
res.json({ success: true });
|
||||
});
|
||||
|
||||
// 下载App
|
||||
app.get('/api/apps/:id', (req, res) => {
|
||||
const app = apps.find(a => a.id === req.params.id);
|
||||
if (!app) {
|
||||
return res.status(404).json({ success: false, message: 'App不存在' });
|
||||
}
|
||||
|
||||
// 实际实现中,这里应该返回真实的文件流
|
||||
res.send('文件下载功能待实现');
|
||||
});
|
||||
|
||||
app.listen(3000, () => {
|
||||
console.log('Server running on port 3000');
|
||||
});
|
||||
```
|
||||
|
||||
## 技术栈
|
||||
|
||||
- HTML5
|
||||
@@ -138,7 +77,6 @@ app.listen(3000, () => {
|
||||
|
||||
1. 在下载区域找到要下载的App
|
||||
2. 点击"下载"按钮即可开始下载
|
||||
3. 点击"复制直链"按钮可以复制App的直接下载链接
|
||||
|
||||
## 自定义配置
|
||||
|
||||
@@ -158,17 +96,6 @@ const ADMIN_PASSWORD = 'your_new_password';
|
||||
const API_BASE_URL = 'http://your-backend-url:port/api';
|
||||
```
|
||||
|
||||
### 自定义样式
|
||||
|
||||
CSS选择器保持不变,可以直接修改 `style.css` 文件来自定义样式。
|
||||
|
||||
## 浏览器兼容性
|
||||
|
||||
- Chrome 60+
|
||||
- Firefox 55+
|
||||
- Safari 12+
|
||||
- Edge 79+
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. 默认使用localStorage存储,数据只保存在浏览器中
|
||||
|
||||
Reference in New Issue
Block a user