2026-01-08 11:46:34 +08:00
|
|
|
|
# Project Context
|
|
|
|
|
|
|
|
|
|
|
|
## Purpose
|
2026-01-13 19:45:05 +08:00
|
|
|
|
|
2026-01-08 11:46:34 +08:00
|
|
|
|
BLS Project Console是一个前后端分离的Node.js项目,用于从Redis队列读取日志记录并展示在控制台界面中,同时提供发送控制台指令到Redis队列的功能,以便其他程序读取和执行。
|
|
|
|
|
|
|
|
|
|
|
|
## Tech Stack
|
2026-01-13 19:45:05 +08:00
|
|
|
|
|
2026-01-08 11:46:34 +08:00
|
|
|
|
- **前端**: Vue 3.x, Vue Router, Axios, CSS3
|
|
|
|
|
|
- **后端**: Node.js, Express, Redis客户端, CORS
|
|
|
|
|
|
- **构建工具**: Vite
|
|
|
|
|
|
- **开发工具**: ESLint, Prettier, nodemon
|
|
|
|
|
|
|
|
|
|
|
|
## Project Conventions
|
|
|
|
|
|
|
|
|
|
|
|
### Code Style
|
2026-01-13 19:45:05 +08:00
|
|
|
|
|
2026-01-08 11:46:34 +08:00
|
|
|
|
- **JavaScript**: 使用ES模块语法(import/export)
|
|
|
|
|
|
- **Vue**: 使用Composition API
|
2026-01-13 19:45:05 +08:00
|
|
|
|
- **命名规范**:
|
2026-01-08 11:46:34 +08:00
|
|
|
|
- 文件名: 小驼峰命名(如: logView.vue)
|
|
|
|
|
|
- 组件名: 大驼峰命名(如: LogView)
|
|
|
|
|
|
- 变量名: 小驼峰命名
|
|
|
|
|
|
- 常量名: 大写蛇形命名(如: REDIS_QUEUE_NAME)
|
|
|
|
|
|
- **代码格式化**: 使用Prettier自动格式化
|
|
|
|
|
|
- **代码质量**: 使用ESLint进行静态代码检查
|
|
|
|
|
|
|
|
|
|
|
|
### Architecture Patterns
|
2026-01-13 19:45:05 +08:00
|
|
|
|
|
2026-01-08 11:46:34 +08:00
|
|
|
|
- **前后端分离**: 前端和后端独立部署,通过RESTful API通信
|
|
|
|
|
|
- **MVC架构**: 后端使用Model-View-Controller模式
|
|
|
|
|
|
- **组件化开发**: 前端采用Vue组件化开发
|
2026-01-13 19:45:05 +08:00
|
|
|
|
- **分层设计**:
|
2026-01-08 11:46:34 +08:00
|
|
|
|
- 前端: 视图层、路由层、服务层
|
|
|
|
|
|
- 后端: 路由层、服务层、数据访问层
|
|
|
|
|
|
|
|
|
|
|
|
### Testing Strategy
|
2026-01-13 19:45:05 +08:00
|
|
|
|
|
2026-01-08 11:46:34 +08:00
|
|
|
|
- **单元测试**: 对核心功能模块进行单元测试
|
|
|
|
|
|
- **集成测试**: 测试API接口和Redis交互
|
|
|
|
|
|
- **端到端测试**: 测试完整的用户流程
|
2026-01-17 18:36:52 +08:00
|
|
|
|
- **测试框架**: Vitest + Supertest
|
2026-01-08 11:46:34 +08:00
|
|
|
|
|
|
|
|
|
|
### Git Workflow
|
2026-01-13 19:45:05 +08:00
|
|
|
|
|
2026-01-08 11:46:34 +08:00
|
|
|
|
- **分支策略**: Git Flow
|
|
|
|
|
|
- main: 生产分支
|
|
|
|
|
|
- develop: 开发分支
|
|
|
|
|
|
- feature/: 功能分支
|
|
|
|
|
|
- hotfix/: 热修复分支
|
|
|
|
|
|
- **提交规范**: 使用Conventional Commits
|
|
|
|
|
|
- feat: 新功能
|
|
|
|
|
|
- fix: 修复bug
|
|
|
|
|
|
- docs: 文档变更
|
|
|
|
|
|
- style: 代码格式变更
|
|
|
|
|
|
- refactor: 代码重构
|
|
|
|
|
|
- test: 测试相关变更
|
|
|
|
|
|
- chore: 构建或依赖更新
|
|
|
|
|
|
|
|
|
|
|
|
## Domain Context
|
2026-01-13 19:45:05 +08:00
|
|
|
|
|
2026-01-17 18:36:52 +08:00
|
|
|
|
- **Redis 数据结构**: DB15 中使用 `项目心跳`(LIST)与 `${projectName}_项目控制台`(LIST)
|
|
|
|
|
|
- **日志记录**: 外部程序向 `${projectName}_项目控制台` 追加日志 JSON;控制台轮询读取并展示
|
|
|
|
|
|
- **项目心跳**: 外部程序向 `项目心跳` 追加心跳 JSON;控制台按 projectName 去重并判定在线状态
|
|
|
|
|
|
- **控制台指令**: 控制台通过 HTTP 调用目标项目 API(由心跳中的 `apiBaseUrl` 提供)
|
2026-01-08 11:46:34 +08:00
|
|
|
|
|
|
|
|
|
|
## Important Constraints
|
2026-01-13 19:45:05 +08:00
|
|
|
|
|
2026-01-08 11:46:34 +08:00
|
|
|
|
- **性能要求**: 控制台需要能够处理大量日志记录的实时更新
|
|
|
|
|
|
- **可靠性**: Redis连接需要具备重连机制,确保系统稳定运行
|
|
|
|
|
|
- **安全性**: API接口需要适当的访问控制
|
|
|
|
|
|
- **可扩展性**: 系统设计应支持未来功能扩展
|
2026-01-12 19:55:51 +08:00
|
|
|
|
- **开发约束**: 一旦遇到 lint/build/tooling 失败(例如 ESLint 配置错误),必须优先修复并恢复可用的开发工作流,再继续功能开发
|
2026-01-08 11:46:34 +08:00
|
|
|
|
|
|
|
|
|
|
## External Dependencies
|
2026-01-13 19:45:05 +08:00
|
|
|
|
|
2026-01-08 11:46:34 +08:00
|
|
|
|
- **Redis**: 用于存储日志记录和控制台指令的消息队列服务
|
|
|
|
|
|
- 版本: 6.x+
|
|
|
|
|
|
- 连接方式: Redis客户端(redis@^4.6.10)
|
2026-01-17 18:36:52 +08:00
|
|
|
|
- 主要用途: 心跳列表与日志队列
|