From 5adf8cf86249903173ce354ddf039d2aa6b93e41 Mon Sep 17 00:00:00 2001 From: pjmw9izve <2308014474@qq.com> Date: Sun, 6 Oct 2024 13:09:34 +0800 Subject: [PATCH] ADD file via upload --- classManager.js | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 classManager.js diff --git a/classManager.js b/classManager.js new file mode 100644 index 0000000..1a3ef65 --- /dev/null +++ b/classManager.js @@ -0,0 +1,48 @@ +const fs = require('fs'); +const path = require('path'); +const xlsx = require('xlsx'); +const pool = require('../db'); + +const classManager = { + addClass: (req, res) => { + const filePath = req.file.path; + + // 读取并解析Excel文件 + const workbook = xlsx.readFile(filePath); + const sheetName = workbook.SheetNames[0]; + const worksheet = workbook.Sheets[sheetName]; + + const students = xlsx.utils.sheet_to_json(worksheet); + + // 定义所需的字段 + const requiredFields = [ 'student_id', 'student_name']; + let hasError = false; + + students.forEach(student => { + // 数据验证 + const missingFields = requiredFields.filter(field =>!(field in student)); + if (missingFields.length > 0) { + console.error(`Student data is missing fields: ${missingFields.join(', ')}`); + hasError = true; + return; + } + + // 将学生数据插入数据库 + const query = 'INSERT INTO students (student_id, student_name, score, call_count) VALUES (?,?, 0, 0)'; + pool.query(query, [student.student_id, student.student_name], (error) => { + if (error) { + console.error(`Error inserting student: ${student.name}`, error); + hasError = true; + } + }); + }); + + if (hasError) { + res.status(500).json({ message: 'Error adding class. Some students were not added successfully.' }); + } else { + res.status(200).json({ message: 'Class added successfully!' }); + } + } +}; + +module.exports = classManager;