完整的外部 API 数据同步解决方案
cd /workspace/repos/FunWebGames
node sync-data.jsnode sync-data.js --sync cryptonode sync-data.js --add myapi "https://api.example.com/data"| 数据源 | 文件 | 记录 | 大小 | 状态 |
|---|---|---|---|---|
| 💰 Crypto | crypto-prices.json |
10 | 9.3 KB | ✅ |
| 📦 GitHub | github-repo.json |
1 | 5.7 KB | ✅ |
| 📝 Posts | posts.json |
100 | 26.9 KB | ✅ |
| 👥 Users | users.json |
10 | 5.5 KB | ✅ |
总计:121 条记录,47.4 KB
node sync-data.js # 同步所有
node sync-data.js --list # 列出数据源
node sync-data.js --sync <名> # 同步指定
node sync-data.js --add <名> <URL> # 添加新源./api-sync.sh [URL] [输出文件]node sync.js [URL]node scripts/sync-all.jsFunWebGames/
├── sync-data.js # 统一同步工具 ⭐
├── sync-sources.json # 数据源配置
├── api-sync.sh # Shell 同步脚本
├── sync.js # Node.js 快速同步
├── api-data-viewer.html # 数据可视化
├── README-API-SYNC.md # 本文档
├── scripts/
│ ├── sync-api.js # 完整同步系统
│ ├── sync-all.js # 多源并行同步
│ └── quick-sync.js # 快速同步
└── data/ # 同步数据
├── crypto-prices.json
├── github-repo.json
├── posts.json
└── users.json
{
"sources": [
{
"name": "我的 API",
"url": "https://api.example.com/v1/data",
"output": "my-data.json",
"enabled": true
}
]
}node sync-data.js --add myapi "https://api.example.com/data"lib.get(url, {
headers: {
'Authorization': 'Bearer YOUR_TOKEN',
'X-API-Key': 'YOUR_API_KEY'
}
}, callback);// 浏览器
fetch('data/crypto-prices.json')
.then(r => r.json())
.then(data => console.log(data));
// Node.js
const crypto = require('./data/crypto-prices.json');打开 api-data-viewer.html 查看数据!
| 文件 | 说明 |
|---|---|
README-API-SYNC.md |
本文档 - 快速指南 |
API-同步总结.md |
完整总结报告 |
同步完成.md |
使用指南 |
scripts/README.md |
工具文档 |
node sync-data.js --sync crypto./api-sync.sh https://api.github.com/users/TechGuyTest/repos data/repos.json# 编辑 sync-sources.json 添加数据源
node sync-data.js --add weather "https://api.weather.com/data"
node sync-data.js --add news "https://api.news.com/headlines"
# 同步所有
node sync-data.jsQ: 如何定时同步?
A: 使用 cron:
# 每小时同步一次
0 * * * * cd /workspace/repos/FunWebGames && node sync-data.jsQ: 数据保存在哪里?
A: data/ 目录
Q: 如何查看同步的数据?
A:
# 命令行
cat data/crypto-prices.json
# 浏览器
open api-data-viewer.htmlcd /workspace/repos/FunWebGames
node sync-data.js就这么简单! ✨