Some checks failed
Deploy / deploy (push) Has been cancelled
Full-stack web application for Telegram management - Frontend: Vue 3 + Vben Admin - Backend: NestJS - Features: User management, group broadcast, statistics 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
85 lines
3.6 KiB
Markdown
85 lines
3.6 KiB
Markdown
# 前后端集成最终总结(Node.js 方案)
|
||
|
||
## ✅ 已完成工作
|
||
|
||
### 1. 基础配置
|
||
- 统一前端(Vben Admin)请求基地址,默认指向 `http://localhost:3000` 的 Node.js 后端。
|
||
- Axios/TanStack 封装适配 Node 返回格式(`{ code, data, message }`),并在 401/403/500 等状态下提供统一提示。
|
||
- 配置跨域与凭证头部:后端开启 Hapi CORS,前端添加 `Authorization` header 传递 `Bearer token`。
|
||
|
||
### 2. 认证体系
|
||
- 登录/登出/用户信息接口切换至 Node `/admin/*` 路由。
|
||
- 会话状态通过 Redis 持久化;前端在 TanStack Mutation 成功后缓存 token,并在失效时自动刷新或跳转登录。
|
||
- 权限数据(角色、菜单)由后端返回并落入 Pinia/TanStack,全局守卫基于此控制路由与按钮权限。
|
||
|
||
### 3. 业务模块
|
||
- Telegram 账号列表、统计信息、增删改查接口接入 Node 服务,使用乐观更新与缓存失效策略。
|
||
- 实时监控通过 `ws://localhost:18081` 建立 gramJS 推送,前端统一封装 WebSocket Hook。
|
||
- 代理平台、短信平台等配置项与 Node 服务保持字段一致,导入导出功能适配新的 API。
|
||
|
||
### 4. 用户体验优化
|
||
- 登录页移除默认账号,补充 Loading、错误反馈与成功提醒。
|
||
- 全站加载进度条、空状态、错误兜底更新完毕。
|
||
- 导航/侧边菜单基于新权限模型动态生成;新增快捷入口与常用操作标记。
|
||
|
||
## 🧱 技术架构
|
||
|
||
| 层级 | 技术栈 | 说明 |
|
||
| ---- | ------ | ---- |
|
||
| 后端 | Node.js 18+, Hapi.js, Sequelize, Redis, MySQL, gramJS | 负责 Telegram 业务、账号操控、实时监控 |
|
||
| 前端 | Vue 3, TypeScript, Vite, Vben Admin, TanStack Query, Pinia | 后台管理界面、数据可视化与实时状态 |
|
||
| 实时 | Socket.IO + 自研 WebSocket(RealtimeMonitor) | 监听 Telegram 账号状态、消息推送 |
|
||
| 脚本 | PM2、启动/停止脚本、Docker(可选) | 部署与运维辅助 |
|
||
|
||
## 🌐 运行指引
|
||
|
||
### 后端
|
||
```bash
|
||
cd backend
|
||
npm install
|
||
npm start # 默认端口 3000,WS 端口 18081,可通过环境变量覆盖
|
||
```
|
||
|
||
### 前端(Vben)
|
||
```bash
|
||
corepack enable # 确保 pnpm 可用
|
||
cd frontend-vben
|
||
pnpm install
|
||
pnpm dev:antd # 默认端口 5173,如占用会自动顺延
|
||
```
|
||
|
||
### 一键脚本
|
||
```bash
|
||
./start-background.sh # 启动 Node 后端 + Vben 前端
|
||
./stop-services.sh # 停止所有进程
|
||
```
|
||
|
||
### 调试入口
|
||
- 前端开发服:`http://localhost:5173/`
|
||
- 后端 API:`http://localhost:3000/`
|
||
- 实时监控:`ws://localhost:18081/`
|
||
|
||
> 账号数据沿用 Node 默认初始化,可在 `backend/migrations` 与 `init-*.js` 中自定义。
|
||
|
||
## 🔄 后续建议
|
||
|
||
### 功能完善
|
||
1. 扩展 Telegram 群组、消息、营销等模块接口,梳理统一的错误码与日志。
|
||
2. 补齐文件上传、批量导入导出、操作审计等企业级需求。
|
||
3. 引入任务调度可视化、通知中心等协同功能。
|
||
|
||
### 性能优化
|
||
1. 为高频接口添加缓存/限流策略,优化消息列表分页。
|
||
2. WebSocket 心跳与断线重连策略对齐移动端场景。
|
||
3. 前端按需加载模块、拆分路由打包,减小首屏体积。
|
||
|
||
### 安全加固
|
||
1. 增加 API 签名校验、防重放、防暴力破解策略。
|
||
2. 部署 HTTPS、配置可信代理、细化 CORS 白名单。
|
||
3. 对敏感操作添加双重校验、操作审计与告警。
|
||
|
||
### 运维部署
|
||
1. 结合 `DEPLOYMENT.md` 将 Node 后端托管至 PM2/系统服务,前端构建后由 Nginx 提供静态资源。
|
||
2. 落地集中日志与指标监控(Grafana/Prometheus/ELK)。
|
||
3. 依据业务量规划 MySQL、Redis 主从或高可用方案。
|