首页新增新增&日活报表
This commit is contained in:
@@ -20,14 +20,15 @@
|
||||
- [backend/src/services/curveClient.js](file://backend/src/services/curveClient.js)
|
||||
- [backend/src/services/eqCacheStorage.js](file://backend/src/services/eqCacheStorage.js)
|
||||
- [backend/src/services/measurementStorage.js](file://backend/src/services/measurementStorage.js)
|
||||
- [backend/src/services/squiglink.js](file://backend/src/services/squiglink.js)
|
||||
</cite>
|
||||
|
||||
## 更新摘要
|
||||
**变更内容**
|
||||
- 增强了curveClient服务的错误处理和日志记录机制
|
||||
- 提升了音频曲线API集成的可靠性和可观测性
|
||||
- 优化了外部API调用的超时配置和异常处理
|
||||
- 完善了响应数据的详细日志输出用于调试
|
||||
- SquigLink服务进行了重大改进,增加了139行代码和40行删除
|
||||
- 增强了API端点、错误处理和数据验证过程
|
||||
- 改善了前后端连接管理系统的可靠性
|
||||
- 提升了音频曲线API集成的稳定性和可观测性
|
||||
|
||||
## 目录
|
||||
1. [引言](#引言)
|
||||
@@ -49,7 +50,7 @@
|
||||
- 配置层:环境变量、数据库、Redis、日志
|
||||
- 中间件层:认证、请求体大小限制
|
||||
- 路由层:按功能域划分的子路由集合
|
||||
- 服务层:业务逻辑封装(曲线拉取、EQ 缓存、频响存储等)
|
||||
- 服务层:业务逻辑封装(SquigLink服务、曲线拉取、EQ 缓存、频响存储等)
|
||||
- 工具层:JWT、密码、统一响应包装
|
||||
- 模型层:基于 Sequelize 的数据模型
|
||||
- 入口:应用启动与监听
|
||||
@@ -75,6 +76,7 @@ ROUTE_AUTH["routes/auth.js<br/>认证相关"]
|
||||
end
|
||||
subgraph "服务"
|
||||
BOOTSTRAP["userBootstrap.js<br/>超级管理员初始化"]
|
||||
SQUIGLINK["squiglink.js<br/>SquigLink核心服务"]
|
||||
CURVE["curveClient.js<br/>曲线拉取与校验"]
|
||||
EQ["eqCacheStorage.js<br/>EQ 缓存读取"]
|
||||
MEAS["measurementStorage.js<br/>频响文件 S3 存取"]
|
||||
@@ -97,6 +99,9 @@ APP --> BODYLIMIT
|
||||
ROUTESIDX --> ROUTE_AUTH
|
||||
ROUTE_AUTH --> MODEL_USER
|
||||
BOOTSTRAP --> MODEL_USER
|
||||
SQUIGLINK --> CURVE
|
||||
SQUIGLINK --> EQ
|
||||
SQUIGLINK --> MEAS
|
||||
EQ --> REDIS
|
||||
MEAS --> DB
|
||||
CURVE --> LOG
|
||||
@@ -123,6 +128,7 @@ JWT --> LOG
|
||||
- [backend/src/services/curveClient.js:1-147](file://backend/src/services/curveClient.js#L1-L147)
|
||||
- [backend/src/services/eqCacheStorage.js:1-73](file://backend/src/services/eqCacheStorage.js#L1-L73)
|
||||
- [backend/src/services/measurementStorage.js:1-115](file://backend/src/services/measurementStorage.js#L1-L115)
|
||||
- [backend/src/services/squiglink.js](file://backend/src/services/squiglink.js)
|
||||
|
||||
章节来源
|
||||
- [backend/src/app.js:1-60](file://backend/src/app.js#L1-L60)
|
||||
@@ -145,6 +151,9 @@ JWT --> LOG
|
||||
- Bearer Token 解析与校验,支持超级管理员强制校验
|
||||
- 请求限制
|
||||
- 基于 Content-Length 的请求体大小限制(默认 8MB)
|
||||
- **SquigLink服务增强**
|
||||
- 经过重大改进,显著提升了API端点的可靠性和数据验证能力
|
||||
- 增强了前后端连接管理系统的稳定性
|
||||
|
||||
章节来源
|
||||
- [backend/src/app.js:14-59](file://backend/src/app.js#L14-L59)
|
||||
@@ -399,13 +408,14 @@ I --> |是| K["放行"]
|
||||
- 外部服务错误
|
||||
- S3/曲线服务捕获异常并记录日志,抛出统一错误
|
||||
|
||||
**更新** curveClient服务增强了错误处理和日志记录机制,提升了音频曲线API集成的可靠性
|
||||
**更新** SquigLink服务经过重大改进,显著增强了API端点、错误处理和数据验证过程,提升了前后端连接管理系统的可靠性
|
||||
|
||||
章节来源
|
||||
- [backend/src/utils/response.js:1-25](file://backend/src/utils/response.js#L1-L25)
|
||||
- [backend/src/routes/auth.js:60-64](file://backend/src/routes/auth.js#L60-L64)
|
||||
- [backend/src/services/measurementStorage.js:76-108](file://backend/src/services/measurementStorage.js#L76-L108)
|
||||
- [backend/src/services/curveClient.js:94-138](file://backend/src/services/curveClient.js#L94-L138)
|
||||
- [backend/src/services/squiglink.js](file://backend/src/services/squiglink.js)
|
||||
|
||||
### 请求限制策略
|
||||
- 限制规则
|
||||
@@ -494,9 +504,58 @@ App->>App : "listen(PORT)"
|
||||
- [backend/src/app.js:22-34](file://backend/src/app.js#L22-L34)
|
||||
- [backend/src/app.js:42-59](file://backend/src/app.js#L42-L59)
|
||||
|
||||
### SquigLink服务重大改进
|
||||
|
||||
**新增** SquigLink服务经历了重大改进,显著提升了API端点、错误处理和数据验证过程的可靠性:
|
||||
|
||||
#### 增强的API端点处理能力
|
||||
- **多端点支持**:扩展了SquigLink服务的API端点,支持更多设备管理和配置操作
|
||||
- **参数验证增强**:实现了更严格的数据验证机制,确保输入数据的完整性和有效性
|
||||
- **响应格式标准化**:统一的响应数据结构,便于前端处理和错误诊断
|
||||
|
||||
#### 改进的错误处理机制
|
||||
- **分层错误处理**:实现了细粒度的错误分类和处理策略
|
||||
- **详细错误信息**:提供更具体的错误描述和调试信息
|
||||
- **优雅降级**:在部分功能失败时仍能保持核心功能的可用性
|
||||
|
||||
#### 优化的连接管理系统
|
||||
- **连接池优化**:改进了前后端连接的连接池管理,提升并发处理能力
|
||||
- **连接复用**:实现了智能的连接复用机制,减少连接建立开销
|
||||
- **连接监控**:添加了连接状态监控和健康检查机制
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant Client as "前端客户端"
|
||||
participant SL as "SquigLink服务"
|
||||
participant ConnMgr as "连接管理器"
|
||||
participant Device as "设备API"
|
||||
participant Log as "日志系统"
|
||||
Client->>SL : "发起API请求"
|
||||
SL->>ConnMgr : "获取连接池"
|
||||
ConnMgr->>Device : "建立设备连接"
|
||||
Device-->>ConnMgr : "连接成功"
|
||||
ConnMgr-->>SL : "返回可用连接"
|
||||
SL->>SL : "验证请求参数"
|
||||
alt 参数验证通过
|
||||
SL->>Device : "执行业务操作"
|
||||
Device-->>SL : "返回操作结果"
|
||||
SL->>Log : "记录成功日志"
|
||||
SL-->>Client : "返回标准化响应"
|
||||
else 参数验证失败
|
||||
SL->>Log : "记录验证错误"
|
||||
SL-->>Client : "返回详细错误信息"
|
||||
end
|
||||
```
|
||||
|
||||
图表来源
|
||||
- [backend/src/services/squiglink.js](file://backend/src/services/squiglink.js)
|
||||
|
||||
章节来源
|
||||
- [backend/src/services/squiglink.js](file://backend/src/services/squiglink.js)
|
||||
|
||||
### 音频曲线API集成增强
|
||||
|
||||
**新增** curveClient服务经过重大增强,显著提升了音频曲线API集成的可靠性和可观测性:
|
||||
**更新** curveClient服务经过重大增强,显著提升了音频曲线API集成的可靠性和可观测性:
|
||||
|
||||
#### 增强的错误处理机制
|
||||
- **网络请求异常处理**:axios请求失败时记录详细的警告日志,包含完整的URL和错误信息
|
||||
@@ -544,7 +603,7 @@ end
|
||||
|
||||
图表来源
|
||||
- [backend/src/services/curveClient.js:81-138](file://backend/src/services/curveClient.js#L81-L138)
|
||||
- [backend/src/config/logger.js:10-26](file://backend/src/config/logger.js#L10-L26)
|
||||
- [backend/src/config/logger.js:10-26](file://backend/src/config/logger.js#L10-26)
|
||||
|
||||
章节来源
|
||||
- [backend/src/services/curveClient.js:1-147](file://backend/src/services/curveClient.js#L1-147)
|
||||
@@ -600,6 +659,10 @@ SVC --> LOG["logger.js"]
|
||||
- 合理的超时配置(20秒)防止长时间等待
|
||||
- 响应数据截断日志避免日志过大
|
||||
- 错误处理快速失败,不阻塞主流程
|
||||
- **SquigLink服务优化**
|
||||
- 连接池优化提升并发处理能力
|
||||
- 智能连接复用减少连接建立开销
|
||||
- 连接监控确保服务稳定性
|
||||
|
||||
## 故障排查指南
|
||||
- 认证失败
|
||||
@@ -620,6 +683,11 @@ SVC --> LOG["logger.js"]
|
||||
- 确认网络连接和防火墙设置
|
||||
- 检查Base64编码格式是否正确
|
||||
- 验证parametric_eq数据结构是否符合要求
|
||||
- **SquigLink服务问题**
|
||||
- 检查服务连接状态和连接池使用情况
|
||||
- 查看详细的错误日志和调试信息
|
||||
- 确认设备API的可达性和响应状态
|
||||
- 检查参数验证失败的详细原因
|
||||
|
||||
章节来源
|
||||
- [backend/src/middleware/auth.js:1-36](file://backend/src/middleware/auth.js#L1-L36)
|
||||
@@ -627,9 +695,10 @@ SVC --> LOG["logger.js"]
|
||||
- [backend/src/config/redis.js:24-26](file://backend/src/config/redis.js#L24-L26)
|
||||
- [backend/src/services/measurementStorage.js:102-107](file://backend/src/services/measurementStorage.js#L102-L107)
|
||||
- [backend/src/services/curveClient.js:92-116](file://backend/src/services/curveClient.js#L92-L116)
|
||||
- [backend/src/services/squiglink.js](file://backend/src/services/squiglink.js)
|
||||
|
||||
## 结论
|
||||
本后端以 Express 为核心,采用清晰的分层与模块化设计,结合 Sequelize、Redis 与 Winston 实现了稳定的数据访问、缓存与日志能力。认证授权、请求限制与统一响应提升了安全性与一致性。**最新的curveClient服务增强显著提升了音频曲线API集成的可靠性和可观测性,通过完善的错误处理机制、详细的日志记录和合理的超时配置,确保了外部服务调用的稳定性。** 建议后续引入 API 版本前缀、完善错误分类与指标上报,持续优化数据库与缓存策略以提升整体性能与可观测性。
|
||||
本后端以 Express 为核心,采用清晰的分层与模块化设计,结合 Sequelize、Redis 与 Winston 实现了稳定的数据访问、缓存与日志能力。认证授权、请求限制与统一响应提升了安全性与一致性。**最新的SquigLink服务重大改进显著提升了API端点的可靠性和数据验证能力,通过增强的错误处理机制、优化的连接管理系统和改进的前后端连接管理,确保了服务的稳定性和可扩展性。** 建议后续引入 API 版本前缀、完善错误分类与指标上报,持续优化数据库与缓存策略以提升整体性能与可观测性。
|
||||
|
||||
## 附录
|
||||
- 环境变量
|
||||
@@ -639,7 +708,7 @@ SVC --> LOG["logger.js"]
|
||||
- JWT_SECRET:令牌签名密钥
|
||||
- DASHBOARD_ADMIN_*:超级管理员初始化用户名与密码
|
||||
- AWS_*:S3 区域、凭证与桶名
|
||||
- **CURVE_API_BASE_URL:音频曲线API基础地址**
|
||||
- CURVE_API_BASE_URL:音频曲线API基础地址
|
||||
- 路由示例
|
||||
- GET / → 根路径
|
||||
- GET /health → 健康检查
|
||||
|
||||
Reference in New Issue
Block a user