You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.9 KiB

const express = require('express');
const router = express.Router();
const multer = require('multer');
const randomSelect = require('./services/randomSelect');
const ranking = require('./services/ranking');
const classManager = require('./services/classManager');
const scoreManager = require('./services/scoreManager');
const TableManager = require('./services/delete-table');
const pool = require('./db');
// 文件上传配置
const upload = multer({ dest: 'uploads/' });
// 路由 - 添加班级
router.post('/upload', upload.single('file'), classManager.addClass);
// 路由 - 随机点名
router.get('/random-call', randomSelect.selectStudent);
// 路由 - 获取排名
router.get('/ascend_ranking', ranking.get_ascend_Ranking);
router.get('/descend_ranking', ranking.get_descend_Ranking);
// 路由 - 更新分数
router.post('/update-score', scoreManager.updateScore);
//路由 - 获取某个id的分数
router.post('/get-score', scoreManager.getStudentScore);
//路由 - 删除班级
router.post('/delete-table', TableManager.deleteTable);
//路由 - 导出成绩
router.get('/export-scores', scoreManager.exportScores);
// 获取全部学生名单
router.get('/get-students', async (req, res) => {
let connection; // 声明连接变量
try {
connection = await pool.getConnection(); // 从连接池获取连接
const [students] = await connection.query('SELECT student_name FROM students'); // 执行查询
const studentNames = students.map(student => ({ student_name: student.student_name })); // 只保留 student_name 字段
res.json(studentNames); // 返回只包含 student_name 的结果
} catch (error) {
console.error('Error fetching students:', error); // 记录错误信息
res.status(500).send({ error: 'Failed to fetch students' }); // 返回500错误响应
} finally {
if (connection) connection.release(); // 确保连接被释放
}
});
module.exports = router;