Files
XuJiacheng 7ac3949dfa feat: 重构项目心跳为Redis LIST并更新相关文档
重构项目心跳数据结构为Redis LIST,更新相关文档和OpenSpec规范。主要变更包括:
- 将项目心跳从STRING改为LIST类型
- 更新后端服务以支持LIST操作
- 同步更新文档和OpenSpec规范
- 统一后端端口为3001
- 添加部署指南和Windows部署文档

修复前端API请求路径,移除硬编码的localhost地址。添加PM2和Nginx配置文件模板,完善部署流程文档。更新Redis集成协议文档,明确LIST数据结构和外部项目对接规范。
2026-01-17 18:36:52 +08:00

2.9 KiB
Raw Permalink Blame History

Project Context

Purpose

BLS Project Console是一个前后端分离的Node.js项目用于从Redis队列读取日志记录并展示在控制台界面中同时提供发送控制台指令到Redis队列的功能以便其他程序读取和执行。

Tech Stack

  • 前端: Vue 3.x, Vue Router, Axios, CSS3
  • 后端: Node.js, Express, Redis客户端, CORS
  • 构建工具: Vite
  • 开发工具: ESLint, Prettier, nodemon

Project Conventions

Code Style

  • JavaScript: 使用ES模块语法(import/export)
  • Vue: 使用Composition API
  • 命名规范:
    • 文件名: 小驼峰命名(如: logView.vue)
    • 组件名: 大驼峰命名(如: LogView)
    • 变量名: 小驼峰命名
    • 常量名: 大写蛇形命名(如: REDIS_QUEUE_NAME)
  • 代码格式化: 使用Prettier自动格式化
  • 代码质量: 使用ESLint进行静态代码检查

Architecture Patterns

  • 前后端分离: 前端和后端独立部署通过RESTful API通信
  • MVC架构: 后端使用Model-View-Controller模式
  • 组件化开发: 前端采用Vue组件化开发
  • 分层设计:
    • 前端: 视图层、路由层、服务层
    • 后端: 路由层、服务层、数据访问层

Testing Strategy

  • 单元测试: 对核心功能模块进行单元测试
  • 集成测试: 测试API接口和Redis交互
  • 端到端测试: 测试完整的用户流程
  • 测试框架: Vitest + Supertest

Git Workflow

  • 分支策略: Git Flow
    • main: 生产分支
    • develop: 开发分支
    • feature/: 功能分支
    • hotfix/: 热修复分支
  • 提交规范: 使用Conventional Commits
    • feat: 新功能
    • fix: 修复bug
    • docs: 文档变更
    • style: 代码格式变更
    • refactor: 代码重构
    • test: 测试相关变更
    • chore: 构建或依赖更新

Domain Context

  • Redis 数据结构: DB15 中使用 项目心跳LIST${projectName}_项目控制台LIST
  • 日志记录: 外部程序向 ${projectName}_项目控制台 追加日志 JSON控制台轮询读取并展示
  • 项目心跳: 外部程序向 项目心跳 追加心跳 JSON控制台按 projectName 去重并判定在线状态
  • 控制台指令: 控制台通过 HTTP 调用目标项目 API由心跳中的 apiBaseUrl 提供)

Important Constraints

  • 性能要求: 控制台需要能够处理大量日志记录的实时更新
  • 可靠性: Redis连接需要具备重连机制确保系统稳定运行
  • 安全性: API接口需要适当的访问控制
  • 可扩展性: 系统设计应支持未来功能扩展
  • 开发约束: 一旦遇到 lint/build/tooling 失败(例如 ESLint 配置错误),必须优先修复并恢复可用的开发工作流,再继续功能开发

External Dependencies

  • Redis: 用于存储日志记录和控制台指令的消息队列服务
    • 版本: 6.x+
    • 连接方式: Redis客户端(redis@^4.6.10)
    • 主要用途: 心跳列表与日志队列