const express = require('express'); const cors = require('cors'); const mongoose = require('mongoose'); const dotenv = require('dotenv'); const path = require('path'); const { publishPersonInfo } = require('./mqtt-handler'); dotenv.config(); const app = express(); app.use(cors()); app.use(express.json()); // 连接到MongoDB数据库 mongoose.connect(process.env.MONGODB_URI || 'mongodb://localhost/member-attendance', { useNewUrlParser: true, useUnifiedTopology: true }) .then(() => console.log('Connected to MongoDB')) .catch(err => console.error('Could not connect to MongoDB:', err)); // 路由 const membersRouter = require('./routes/members'); const attendanceRouter = require('./routes/attendance'); const devicesRouter = require('./routes/devices'); app.use('/api/members', membersRouter); app.use('/api/attendance', attendanceRouter); app.use('/api/devices', devicesRouter); // 示例路由:下发人员信息 app.post('/api/publish-person-info', (req, res) => { const personInfo = req.body; publishPersonInfo(personInfo); res.json({ message: 'Person info published to MQTT' }); }); // 静态文件服务 app.use(express.static(path.join(__dirname, '../public'))); // 处理所有其他路由,返回 index.html app.get('*', (req, res) => { res.sendFile(path.join(__dirname, '../public', 'index.html')); }); const PORT = process.env.PORT || 5000; app.listen(PORT, () => { console.log(`Server running on port ${PORT}`); });