Files
xiaocai/server/src/routes/config.ts
wangxiaogang 860c599b7c fix: 系统检查修复 — 安全和稳定性
后端:
- config.ts 使用 requireAdmin 中间件,统一响应格式
- feedback.ts 使用 requireAdmin 中间件,移除重复权限检查
- feedback.ts 添加 affectedRows 检查(反馈不存在时返回 404)
- 全局错误处理中间件兜底未捕获异常

前端:
- request.ts 添加 15 秒请求超时设置
2026-06-08 14:48:39 +08:00

46 lines
1.4 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { Router } from 'express'
import pool from '../db/connection'
import { requireAdmin } from '../middleware/requireAdmin'
const router = Router()
/** 获取公开配置(经过全局 authMiddleware无需管理员权限 */
router.get('/', async (_req, res) => {
try {
const [rows] = await pool.execute('SELECT config_key, config_value FROM sys_config')
const config: Record<string, string> = {}
for (const row of rows as any[]) {
config[row.config_key] = row.config_value
}
res.json({ code: 0, data: config })
} catch (error) {
console.error('Get config error:', error)
res.status(500).json({ code: 50000, message: '获取配置失败' })
}
})
/** 更新配置(管理员权限) */
router.put('/', requireAdmin, async (req, res) => {
try {
const data = req.body
if (!data || typeof data !== 'object') {
return res.status(400).json({ code: 40001, message: '无效的配置数据' })
}
// 批量更新配置
for (const [key, value] of Object.entries(data)) {
await pool.query(
'INSERT INTO sys_config (config_key, config_value) VALUES (?, ?) ON DUPLICATE KEY UPDATE config_value = ?',
[key, value, value]
)
}
res.json({ code: 0 })
} catch (error) {
console.error('Update config error:', error)
res.status(500).json({ code: 50000, message: '更新配置失败' })
}
})
export default router