chao 2 일 전
부모
커밋
2b573ad41a
5개의 변경된 파일391개의 추가작업 그리고 164개의 파일을 삭제
  1. 25 0
      index.js
  2. 1 0
      package-lock.json
  3. 1 0
      package.json
  4. 344 152
      public/index.html
  5. 20 12
      routes/router.js

+ 25 - 0
index.js

@@ -1,14 +1,39 @@
 var express = require('express');
 var fs = require('fs');
 var app = express();
+const mime = require('mime-types');
 
 var port = process.env.PORT || 11111;
 var host = process.env.HOST || 'localhost';
 
 var router = require('./routes/router')
 var cors = require('cors');
+var path = require('path');
+
 app.use(cors());
+
+// 配置静态文件目录
+const staticDir = path.join(__dirname, 'public');
+// 设置静态文件中间件
+app.use(express.static(staticDir, {
+  // 缓存控制(1天)
+  maxAge: '1d',
+  // 设置索引文件
+  index: ['index.html', 'index.htm'],
+  // 自定义文件类型处理
+  setHeaders: (res, filePath) => {
+    const contentType = mime.contentType(path.extname(filePath)) || 'application/octet-stream';
+    res.setHeader('Content-Type', contentType);
+    
+    // 为特定文件类型添加额外头信息
+    if (filePath.endsWith('.css')) {
+      res.setHeader('X-Content-Type-Options', 'nosniff');
+    }
+  }
+}));
+
 app.use(express.json());
+
 app.use(express.urlencoded({ extended: false }));
 var http = require('http');
 

+ 1 - 0
package-lock.json

@@ -13,6 +13,7 @@
         "cors": "^2.8.5",
         "express": "^5.1.0",
         "fs": "^0.0.1-security",
+        "mime-types": "^3.0.1",
         "mongoose": "^8.18.1",
         "mysql": "^2.18.1"
       }

+ 1 - 0
package.json

@@ -13,6 +13,7 @@
     "cors": "^2.8.5",
     "express": "^5.1.0",
     "fs": "^0.0.1-security",
+    "mime-types": "^3.0.1",
     "mongoose": "^8.18.1",
     "mysql": "^2.18.1"
   }

+ 344 - 152
signUp.html → public/index.html

@@ -186,6 +186,7 @@
             display: flex;
         }
 
+
         .form-container {
             flex: 1;
             padding-right: 10px;
@@ -282,7 +283,7 @@
             position: absolute;
             right: 20px;
             top: 1px;
-            padding: 5px 8px;
+            padding: 7px 15px;
             font-size: 14px;
             background-color: #3498db;
             color: white;
@@ -292,6 +293,111 @@
             transition: all 0.3s;
             text-align: center;
         }
+
+        .step-container {
+            display: none;
+        }
+
+        .step-container.active {
+            display: block;
+        }
+
+        .competition-grid {
+            display: grid;
+            grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
+            gap: 20px;
+            margin-bottom: 30px;
+        }
+
+        .competition-card {
+            border: 1px solid #e0e0e0;
+            border-radius: 10px;
+            padding: 20px;
+            text-align: center;
+            cursor: pointer;
+            transition: all 0.3s;
+        }
+
+        .competition-card:hover {
+            border-color: #1a73e8;
+            box-shadow: 0 4px 12px rgba(26, 115, 232, 0.15);
+            transform: translateY(-5px);
+        }
+
+        .competition-card.selected {
+            border-color: #1a73e8;
+            background-color: #e8f0fe;
+        }
+
+        .competition-icon {
+            font-size: 36px;
+            color: #1a73e8;
+            margin-bottom: 15px;
+        }
+
+        .competition-name {
+            font-weight: 500;
+            color: #202124;
+        }
+
+        .btn {
+            padding: 12px 30px;
+            border-radius: 8px;
+            font-size: 16px;
+            font-weight: 500;
+            cursor: pointer;
+            transition: all 0.3s;
+            border: none;
+        }
+
+        .btn-prev {
+            background-color: #f8f9fa;
+            color: #5f6368;
+        }
+
+        .btn-prev:hover {
+            background-color: #e8f0fe;
+            color: #1a73e8;
+        }
+
+        .btn-next {
+            background-color: #1a73e8;
+            color: white;
+        }
+
+        .btn-next:hover {
+            background-color: #0d47a1;
+        }
+
+        .btn-submit {
+            background-color: #34a853;
+            color: white;
+        }
+
+        .btn-submit:hover {
+            background-color: #2d9249;
+        }
+
+        .error {
+            color: #ea4335;
+            font-size: 14px;
+            margin-top: 5px;
+            display: none;
+        }
+
+        .button-group {
+            display: flex;
+            justify-content: space-between;
+            margin-top: 30px;
+        }
+
+        .step-title {
+            font-size: 18px;
+            color: #202124;
+            margin-bottom: 20px;
+            padding-bottom: 10px;
+            border-bottom: 1px solid #e0e0e0;
+        }
     </style>
     <script src="https://sdk.amazonaws.com/js/aws-sdk-2.235.1.min.js"></script>
     <script>
@@ -363,136 +469,168 @@
 
             <!-- 报名区域 -->
             <div class="registration-section " id="registrationSection">
+                <!-- <div class="select-type">
+                    <select id="selectType" class="form-input" required >
+                        <option value="">请选择参赛类型</option>
+                        <option value="1">桌游设计挑战类</option>
+                        <option value="2">智能体应用类</option>
+                    </select>
+                </div> -->
                 <div class="content-header">
                     <h2 style="display: inline-block;font-size: 24px;">参赛信息登记</h2>
-                    <select id="selectType" class="form-input" required style="width: 200px;margin-left: 10px;">
-                        <option value="">请选择</option>
-                        <option value="male">桌游设计挑战类</option>
-                        <option value="female">智能体应用类</option>
-                    </select>
-                    <button class="menu-btn-add" onclick="addContestant()">添加</button>
+                    <button class="menu-btn-add" onclick="addContestant()">添加选手</button>
                 </div>
-                <div class="form-container" id="formContainer">
-                    <h3>选手1:</h3>
-                    <br />
-                    <form id="registrationForm1">
-                        <div class="form-row">
-                            <div class="form-col">
-                                <div class="form-group">
-                                    <label class="form-label required" for="name">姓名</label>
-                                    <input type="text" id="name1" class="form-input" required>
-                                    <div class="error" id="name-error1">请输入姓名</div>
+                <!-- 步骤1:选择比赛类型 -->
+                <div id="step1" class="step-container active">
+                    <div class="step-title">第一步:请选择您要报名的比赛类型</div>
+
+                    <div class="competition-grid">
+                        <div class="competition-card" data-id="1">
+                            <div class="competition-icon">🧮</div>
+                            <div class="competition-name">桌游设计挑战类</div>
+                        </div>
+
+                        <div class="competition-card" data-id="2">
+                            <div class="competition-icon">💻</div>
+                            <div class="competition-name">智能体应用类</div>
+                        </div>
+                    </div>
+
+                    <div class="button-group">
+                        <div></div> <!-- 占位 -->
+                        <button class="btn btn-next" id="nextToStep2">下一步</button>
+                    </div>
+                </div>
+                <!-- 步骤2:填写报名信息 -->
+                <div id="step2" class="step-container">
+                    <div class="step-title">第二步:填写报名信息</div>
+
+                    <div class="form-container" id="formContainer">
+                        <input type="hidden" id="competitionType" value="">
+                        <h3>选手1:</h3>
+                        <br />
+                        <form id="registrationForm1">
+                            <div class="form-row">
+                                <div class="form-col">
+                                    <div class="form-group">
+                                        <label class="form-label required" for="name">姓名</label>
+                                        <input type="text" id="name1" class="form-input" required>
+                                        <div class="error" id="name-error1">请输入姓名</div>
+                                    </div>
                                 </div>
-                            </div>
 
-                            <div class="form-col">
-                                <div class="form-group">
-                                    <label class="form-label required" for="gender">性别</label>
-                                    <select id="gender1" class="form-input" required>
-                                        <option value="">请选择</option>
-                                        <option value="male">男</option>
-                                        <option value="female">女</option>
-                                    </select>
-                                    <div class="error" id="gender-error1">请选择性别</div>
+                                <div class="form-col">
+                                    <div class="form-group">
+                                        <label class="form-label required" for="gender">性别</label>
+                                        <select id="gender1" class="form-input" required>
+                                            <option value="">请选择</option>
+                                            <option value="1">男</option>
+                                            <option value="2">女</option>
+                                        </select>
+                                        <div class="error" id="gender-error1">请选择性别</div>
+                                    </div>
                                 </div>
                             </div>
-                        </div>
 
-                        <div class="form-row">
-                            <div class="form-col">
-                                <div class="form-group">
-                                    <label class="form-label required" for="ethnicity">民族</label>
-                                    <input type="text" id="ethnicity1" class="form-input" required>
-                                    <div class="error" id="ethnicity-error1">请输入民族</div>
+                            <div class="form-row">
+                                <div class="form-col">
+                                    <div class="form-group">
+                                        <label class="form-label required" for="ethnicity">民族</label>
+                                        <input type="text" id="ethnicity1" class="form-input" required>
+                                        <div class="error" id="ethnicity-error1">请输入民族</div>
+                                    </div>
                                 </div>
-                            </div>
 
-                            <div class="form-col">
-                                <div class="form-group">
-                                    <label class="form-label required" for="birthdate">出生年月</label>
-                                    <input type="date" id="birthdate1" class="form-input" required>
-                                    <div class="error" id="birthdate-error1">请选择出生年月</div>
+                                <div class="form-col">
+                                    <div class="form-group">
+                                        <label class="form-label required" for="birthdate">出生年月</label>
+                                        <input type="date" id="birthdate1" class="form-input" required>
+                                        <div class="error" id="birthdate-error1">请选择出生年月</div>
+                                    </div>
                                 </div>
                             </div>
-                        </div>
 
-                        <div class="form-row">
-                            <div class="form-col">
-                                <div class="form-group">
-                                    <label class="form-label required" for="email">电子邮箱</label>
-                                    <input type="email" id="email1" class="form-input" required>
-                                    <div class="error" id="email-error1">请输入有效的电子邮箱</div>
+                            <div class="form-row">
+                                <div class="form-col">
+                                    <div class="form-group">
+                                        <label class="form-label required" for="email">电子邮箱</label>
+                                        <input type="email" id="email1" class="form-input" required>
+                                        <div class="error" id="email-error1">请输入有效的电子邮箱</div>
+                                    </div>
                                 </div>
-                            </div>
 
-                            <div class="form-col">
-                                <div class="form-group">
-                                    <label class="form-label required" for="idNumber">身份证号码</label>
-                                    <input type="text" id="idNumber1" class="form-input" required
-                                        pattern="\d{17}[\dXx]">
-                                    <div class="error" id="idNumber-error1">请输入18位身份证号码</div>
+                                <div class="form-col">
+                                    <div class="form-group">
+                                        <label class="form-label required" for="idNumber">身份证号码</label>
+                                        <input type="text" id="idNumber1" class="form-input" required
+                                            pattern="\d{17}[\dXx]">
+                                        <div class="error" id="idNumber-error1">请输入18位身份证号码</div>
+                                    </div>
                                 </div>
                             </div>
-                        </div>
 
-                        <div class="form-row">
-                            <div class="form-col">
-                                <div class="form-group">
-                                    <label class="form-label required" for="group">组别</label>
-                                    <select id="group1" class="form-input" required>
-                                        <option value="">请选择</option>
-                                        <option value="1">小学组</option>
-                                        <option value="2">初中组</option>
-                                        <option value="3">高中组</option>
-                                        <option value="4">大学组</option>
-                                    </select>
-                                    <div class="error" id="group-error1">请选择组别</div>
+                            <div class="form-row">
+                                <div class="form-col">
+                                    <div class="form-group">
+                                        <label class="form-label required" for="group">组别</label>
+                                        <select id="group1" class="form-input" required>
+                                            <option value="">请选择</option>
+                                            <option value="1">小学组</option>
+                                            <option value="2">初中组</option>
+                                            <option value="3">高中组</option>
+                                            <option value="4">大学组</option>
+                                        </select>
+                                        <div class="error" id="group-error1">请选择组别</div>
+                                    </div>
                                 </div>
-                            </div>
 
-                            <div class="form-col">
-                                <div class="form-group">
-                                    <label class="form-label required" for="grade">年级</label>
-                                    <input type="text" id="grade1" class="form-input" required>
-                                    <div class="error" id="grade-error1">请输入年级</div>
+                                <div class="form-col">
+                                    <div class="form-group">
+                                        <label class="form-label required" for="grade">年级</label>
+                                        <input type="text" id="grade1" class="form-input" required>
+                                        <div class="error" id="grade-error1">请输入年级</div>
+                                    </div>
                                 </div>
                             </div>
-                        </div>
 
-                        <div class="form-row">
-                            <div class="form-col">
-                                <div class="form-group">
-                                    <label class="form-label required" for="school">所在学校</label>
-                                    <input type="text" id="school1" class="form-input" required>
-                                    <div class="error" id="school-error1">请输入学校名称</div>
+                            <div class="form-row">
+                                <div class="form-col">
+                                    <div class="form-group">
+                                        <label class="form-label required" for="school">所在学校</label>
+                                        <input type="text" id="school1" class="form-input" required>
+                                        <div class="error" id="school-error1">请输入学校名称</div>
+                                    </div>
                                 </div>
-                            </div>
 
-                            <div class="form-col">
-                                <div class="form-group">
-                                    <label class="form-label required" for="schoolRegion">学校所在地区</label>
-                                    <input type="text" id="schoolRegion1" class="form-input" required
-                                        placeholder="省/市/区">
-                                    <div class="error" id="schoolRegion-error1">请输入学校所在地区</div>
+                                <div class="form-col">
+                                    <div class="form-group">
+                                        <label class="form-label required" for="schoolRegion">学校所在地区</label>
+                                        <input type="text" id="schoolRegion1" class="form-input" required
+                                            placeholder="省/市/区">
+                                        <div class="error" id="schoolRegion-error1">请输入学校所在地区</div>
+                                    </div>
                                 </div>
                             </div>
-                        </div>
 
-                        <div class="form-group">
-                            <label class="form-label required" for="phone">联系电话</label>
-                            <input type="tel" id="phone1" class="form-input" required pattern="[0-9]{11}">
-                            <div class="error" id="phone-error1">请输入11位手机号码</div>
-                        </div>
-                    </form>
+                            <div class="form-group">
+                                <label class="form-label required" for="phone">联系电话</label>
+                                <input type="tel" id="phone1" class="form-input" required pattern="[0-9]{11}">
+                                <div class="error" id="phone-error1">请输入11位手机号码</div>
+                            </div>
+                        </form>
 
+                    </div>
+                    <div class="file-upload" id="photoSection">
+                        <!-- <div class="upload-icon">📷</div> -->
+                        <label class="form-label required" for="photo">上传文件</label>
+                        <input type="file" id="photo" required>
+                        <div class="error" id="photo-error">请上传照片</div>
+                    </div>
+                    <div class="button-group">
+                        <button type="button" class="btn btn-prev" id="prevToStep1">上一步</button>
+                        <button type="submit" class="btn btn-submit" onclick="submitData()">提交报名</button>
+                    </div>
                 </div>
-                <div class="file-upload">
-                    <!-- <div class="upload-icon">📷</div> -->
-                    <label class="form-label required" for="photo">上传文件</label>
-                    <input type="file" id="photo" required>
-                    <div class="error" id="photo-error">请上传照片</div>
-                </div>
-                <button type="submit" class="submit-btn" onclick="submitData()">提交报名</button>
             </div>
 
             <!-- 上传报名表单 -->
@@ -500,18 +638,11 @@
                 <h2 class="content-header">上传报名表</h2>
                 <div class="download-list">
                     <div class="form-row">
-                        <div class="form-col">
-                            <div class="form-group">
-                                <label class="form-label required" for="name">姓名</label>
-                                <input type="text" id="name1" class="form-input" required>
-                                <div class="error" id="name-error1">请输入姓名</div>
-                            </div>
-                        </div>
-
                         <div class="form-col">
                             <div class="form-group">
                                 <label class="form-label required" for="idNumber">身份证号码</label>
-                                <input type="text" id="idNumber1" class="form-input" required pattern="\d{17}[\dXx]">
+                                <input type="text" id="idNumber1" class="form-input" required pattern="\d{17}[\dXx]"
+                                    placeholder="请填写在线报名时,团队内任一选手的身份证号码">
                                 <div class="error" id="idNumber-error1">请输入18位身份证号码</div>
                             </div>
                         </div>
@@ -546,7 +677,16 @@
             document.getElementById('registrationSection').classList.remove('active');
             document.getElementById('uploadSection').classList.add('active');
         });
+        document.getElementById('registerBtn').addEventListener('click', function () {
+            document.getElementById('registerBtn').classList.add('active');
+            document.getElementById('downloadBtn').classList.remove('active');
+            document.getElementById('registerBtn1').classList.remove('active');
+            document.getElementById('registrationSection').classList.add('active');
+            document.getElementById('downloadSection').classList.remove('active');
+            document.getElementById('uploadSection').classList.remove('active');
+        });
 
+        let uploadFileUrl = ''
         document.getElementById('photo').addEventListener('change', function (e) {
             // 拼接文件名:身份证号_姓名_比赛类型_原文件名
             const idNumber = document.getElementById('idNumber1').value;
@@ -576,18 +716,54 @@
                     alert('文件上传失败');
                 } else {
                     console.log('上传成功:', data);
+                    uploadFileUrl = data.Location;
                     alert('文件上传成功');
                 }
             });
         });
 
-        document.getElementById('registerBtn').addEventListener('click', function () {
-            document.getElementById('registerBtn').classList.add('active');
-            document.getElementById('downloadBtn').classList.remove('active');
-            document.getElementById('registerBtn1').classList.remove('active');
-            document.getElementById('registrationSection').classList.add('active');
-            document.getElementById('downloadSection').classList.remove('active');
-            document.getElementById('uploadSection').classList.remove('active');
+        // 比赛类型选择
+        const competitionCards = document.querySelectorAll('.competition-card');
+        let selectedCompetitionId = null;
+
+        competitionCards.forEach(card => {
+            card.addEventListener('click', function () {
+                // 移除所有卡片的selected类
+                competitionCards.forEach(c => {
+                    c.classList.remove('selected');
+                });
+
+                // 添加当前卡片的selected类
+                this.classList.add('selected');
+
+                // 存储选择的比赛ID
+                selectedCompetitionId = this.getAttribute('data-id');
+            });
+        });
+        // 步骤切换
+        document.getElementById('nextToStep2').addEventListener('click', function () {
+            if (!selectedCompetitionId) {
+                alert('请先选择比赛类型');
+                return;
+            }
+
+            // 设置隐藏字段的值
+            document.getElementById('competitionType').value = selectedCompetitionId;
+            if(selectedCompetitionId == 1){
+                document.getElementById('photoSection').style.display = 'block';
+            }else{
+                document.getElementById('photoSection').style.display = 'none';
+            }
+
+            // 切换到步骤2
+            document.getElementById('step1').classList.remove('active');
+            document.getElementById('step2').classList.add('active');
+        });
+
+        document.getElementById('prevToStep1').addEventListener('click', function () {
+            // 切换回步骤1
+            document.getElementById('step2').classList.remove('active');
+            document.getElementById('step1').classList.add('active');
         });
 
         let num = 1;
@@ -615,8 +791,8 @@
                                     <label class="form-label required" for="gender">性别</label>
                                     <select id="gender${num}" class="form-input" required>
                                         <option value="">请选择</option>
-                                        <option value="male">男</option>
-                                        <option value="female">女</option>
+                                        <option value="1">男</option>
+                                        <option value="2">女</option>
                                     </select>
                                     <div class="error" id="gender-error${num}">请选择性别</div>
                                 </div>
@@ -708,9 +884,9 @@
                             <div class="error" id="phone-error${num}">请输入11位手机号码</div>
                         </div>`;
             html.appendChild(formCrate);
-
         }
 
+
         async function submitData() {
             const requiredFields = ['name', 'gender', 'ethnicity', 'birthdate', 'email',
                 'idNumber', 'group', 'grade', 'school', 'schoolRegion', 'phone',];
@@ -765,7 +941,7 @@
                     ethnicity: document.getElementById('ethnicity' + i).value,
                     birthdate: document.getElementById('birthdate' + i).value,
                     email: document.getElementById('email' + i).value,
-                    idNumber: document.getElementById('idNumber' + i).value,
+                    id_number: document.getElementById('idNumber' + i).value,
                     group: document.getElementById('group' + i).value,
                     grade: document.getElementById('grade' + i).value,
                     school: document.getElementById('school' + i).value,
@@ -773,33 +949,33 @@
                     phone: document.getElementById('phone' + i).value,
                 })
             }
-            console.log('表单数据:', document.getElementById("selectType").value);
 
             try {
                 // 收集表单数据
                 const formDataObj = {
-                    type: 1, // 报名类型,1代表个人报名,2代表团队报名
-                    uploadUrl: "", // 上传文件的URL
-                    idCard: "", // 选手身份证号拼接
+                    type: selectedCompetitionId, // 报名类型,1桌游,2智能体
+                    uploadUrl: uploadFileUrl, // 上传文件的URL
+                    idCard: formData.map(item=>item.id_number).join(","), // 选手身份证号拼接
                     registrationFormUrl: "", // 报名表上传URL
-                    user: formData
+                    user: JSON.stringify(formData),
                 };
+                console.log(formDataObj);
 
                 // 发送报名信息请求
-                // const registerResponse = await fetch('https://api.example.com/register', {
-                //     method: 'POST',
-                //     headers: {
-                //         'Content-Type': 'application/json'
-                //     },
-                //     body: JSON.stringify(formDataObj)
-                // });
-
-                // if (!registerResponse.ok) {
-                //     throw new Error('报名提交失败');
-                // }
-
-                // const registerData = await registerResponse.json();
-                // alert(`报名成功!您的报名ID: ${registerData.id}`);
+                const registerResponse = await fetch('http://localhost:11111/api/user', {
+                    method: 'POST',
+                    headers: {
+                        'Content-Type': 'application/json'
+                    },
+                    body: JSON.stringify(formDataObj)
+                });
+
+                if (!registerResponse.ok) {
+                    throw new Error('报名提交失败');
+                }
+
+                const registerData = await registerResponse.json();
+                alert(`报名成功!您的报名ID: ${registerData.id}`);
                 // document.getElementById('registrationForm').reset();
 
             } catch (error) {
@@ -808,19 +984,35 @@
             }
         }
 
-        async function submitRegistration(){
-            const formData = new FormData();
-        }
 
-        fetch("http://localhost:8080/api/user", {
-            method: "POST",
-            headers: {
-                "Content-Type": "application/json"
-            },
-            body: JSON.stringify({ name: "张三", age: 18 })
-        }).then(res => res.json()).then(res => {
-            console.log(res)
-        })
+        const params = {
+            type: selectedCompetitionId, // 报名类型,1桌游,2智能体
+            uploadUrl: "", // 上传文件的URL
+            idCard: "", // 选手身份证号拼接
+            registrationFormUrl: "", // 报名表上传URL
+            user: JSON.stringify([{
+                name: "张三",
+                gender: "男",
+                ethnicity: "汉族",
+                birthdate: "1990-01-01",
+                email: "zhangsan@example.com",
+                idNumber: "110101199001011234",
+                group: "A",
+                grade: "大一",
+                school: "清华大学",
+                schoolRegion: "北京",
+            }])
+        };
+
+        // fetch("http://localhost:11111/api/user", {
+        //     method: "POST",
+        //     headers: {
+        //         "Content-Type": "application/json"
+        //     },
+        //     body: JSON.stringify(params)
+        // }).then(res => res.json()).then(res => {
+        //     console.log(res)
+        // })
 
     </script>
 </body>

+ 20 - 12
routes/router.js

@@ -1,22 +1,30 @@
 var express = require('express');
 var router = express.Router();
 var mysql = require('../model/mysql');
-const _mysqluser = ["123.58.32.151", "cocorobouser"]; //用戶數據庫信息
-
+const _mysqluser = ["183.36.25.93", "registration"]; //用戶數據庫信息
+const crypto = require('crypto');
 
 router.route('/user').post(async function (req, res) {
-    const signUpData = req.body;
-
-    console.log("用户报名成功",signUpData);
-    signUpData.unshift(_mysqluser[0], _mysqluser[1], "registration");
-    mysql.usselect(signUpData, function (data) {
-        console.log(data);
-        if (data[0] && data[0][0] && data[0][0].type == 1) {
-            console.log("报名成功");
-            res.send({ status: 'ok', message: '用户报名成功' });
-        }
+    const signUpData = [];
+    const reqData = req.body;
+    console.log("用户报名数据:", reqData);
+    signUpData.unshift(_mysqluser[0], _mysqluser[1], "insert_registrations",  reqData.uploadUrl, "",reqData.type,reqData.idCard);
+    let insertSign = await mysql.usselect(signUpData, function (data) {
+        console.log("signUpData", data);
     });
+    const uuid = crypto.randomUUID();
 
+    let userData = JSON.parse(reqData.user);
+    console.log("userData",userData);
+    const insertUser = await userData.map(item => {
+        const userList = [];
+        userList.unshift(_mysqluser[0], _mysqluser[1], "insert_registration_users", item.name, item.gender, item.ethnicity, item.birthdate, item.email, item.id_number, item.group, item.grade, item.school, item.schoolRegion, item.phone, uuid);
+        mysql.usselect(userList, function (data) {
+            console.log("insertUser", data);
+        });
+    });
+    console.log("用户报名成功", insertUser,insertSign);
+    res.send({ status: 'ok', message: '用户报名成功' });
 });