| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- 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}`);
- });
|