- TypeScript项目基础架构 - API路由和账户管理服务 - 数据库模式和迁移 - 基础配置文件和文档 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2.4 KiB
2.4 KiB
Accounts Manager
轻量化账号管理平台
技术栈
- 运行时: Node.js (v18+)
- 语言: TypeScript
- Web框架: Fastify
- 数据库: PostgreSQL (v14+)
- ORM: Drizzle ORM
- 数据校验: Zod
快速开始
1. 安装依赖
npm install
2. 配置环境变量
复制环境变量模板并配置:
cp .env.example .env
编辑 .env 文件配置数据库连接:
DATABASE_URL=postgresql://username:password@localhost:5432/accounts_db
PORT=3000
NODE_ENV=development
LOCK_TIMEOUT_MINUTES=5
3. 数据库设置
运行数据库迁移:
npm run db:generate
npm run db:migrate
4. 启动服务
开发模式:
npm run dev
生产模式:
npm run build
npm start
API 文档
脚本专用 API
Base URL: /s/v1/{ownerId}
1. 获取账号
- GET
/s/v1/{ownerId}/acquire?platform={platform}&count={count} - 获取可用账号并锁定
2. 更新账号状态
- GET
/s/v1/{ownerId}/update/{accountId}/{newStatus}?notes={notes} - 更新指定账号状态
3. 上传账号
- POST
/s/v1/{ownerId}/upload - 批量创建或更新账号
前端管理 API
Base URL: /web/v1
1. 获取账号列表
- POST
/web/v1/accounts/list - 支持复杂查询、分页、排序
2. 批量删除账号
- POST
/web/v1/accounts/delete-batch
3. 批量更新账号
- POST
/web/v1/accounts/update-batch
4. 统计概览
- GET
/web/v1/stats/overview
健康检查
- GET
/health
数据库命令
# 生成迁移文件
npm run db:generate
# 运行迁移
npm run db:migrate
# 打开数据库管理界面
npm run db:studio
项目结构
src/
├── api/v1/
│ ├── script/ # 脚本API
│ └── web/ # 前端API
├── core/ # 业务逻辑
├── db/ # 数据库配置
├── jobs/ # 后台任务
├── lib/ # 工具函数
├── types/ # 类型定义
├── config.ts # 配置
└── index.ts # 入口文件
特性
- 单表设计: 简化数据模型
- OwnerID认证: 基于URL的身份验证
- 自动锁定管理: 防止并发冲突
- 后台清理任务: 自动释放超时锁定
- 统一响应格式: 标准化API响应
- 类型安全: 完整的TypeScript支持