const express = require('express'); const path = require('path'); const { createCampusDB } = require('./db'); const app = express(); const PORT = 3000; // 中间件 app.use(express.urlencoded({ extended: true })); app.use(express.json()); // ============ 为每个校区创建独立路由 ============ function setupCampus(routePrefix, campusName, dirName) { const router = express.Router(); const campusDB = createCampusDB(dirName); // 静态文件 router.use(express.static(path.join(__dirname, 'public', dirName))); // 报名接口 router.post('/api/register', (req, res) => { const { name, period, teacher } = req.body; if (!name || !period || !teacher) { return res.json({ ok: false, msg: '请填写完整信息' }); } try { campusDB.insertRegistration(name.trim(), period, teacher); console.log(`[报名·${campusName}] ${name} - ${period} - ${teacher}`); res.json({ ok: true, msg: '报名成功' }); } catch (err) { console.error(`[报名错误·${campusName}]`, err); res.json({ ok: false, msg: '服务器错误,请稍后再试' }); } }); // 获取报名列表(需密码) router.get('/api/registrations', (req, res) => { const password = req.query.password || req.headers['x-admin-password']; if (!campusDB.verifyPassword(password)) { return res.status(401).json({ ok: false, msg: '密码错误' }); } try { const registrations = campusDB.getAllRegistrations(); res.json({ ok: true, data: registrations }); } catch (err) { console.error(`[查询错误·${campusName}]`, err); res.status(500).json({ ok: false, msg: '服务器错误' }); } }); // 获取统计(需密码) router.get('/api/stats', (req, res) => { const password = req.query.password || req.headers['x-admin-password']; if (!campusDB.verifyPassword(password)) { return res.status(401).json({ ok: false, msg: '密码错误' }); } try { const stats = campusDB.getStats(); res.json({ ok: true, data: stats }); } catch (err) { console.error(`[统计错误·${campusName}]`, err); res.status(500).json({ ok: false, msg: '服务器错误' }); } }); // 删除报名记录(需密码) router.delete('/api/registrations/:id', (req, res) => { const password = req.query.password || req.headers['x-admin-password']; if (!campusDB.verifyPassword(password)) { return res.status(401).json({ ok: false, msg: '密码错误' }); } try { campusDB.deleteRegistration(parseInt(req.params.id)); res.json({ ok: true, msg: '删除成功' }); } catch (err) { console.error(`[删除错误·${campusName}]`, err); res.status(500).json({ ok: false, msg: '服务器错误' }); } }); app.use(routePrefix, router); return campusDB; } // ============ 注册校区 ============ const chencunDB = setupCampus('/chencunnct', '陈村校区', 'chencun'); const beijiaoDB = setupCampus('/beijiaonct', '北滘校区', 'beijiao'); // 根路径跳转提示 app.get('/', (req, res) => { res.send(`