const express = require('express'); const cors = require('cors'); const sequelize = require('./config/db'); const { authMiddleware } = require('./middleware/auth'); const { operationLogMiddleware } = require('./utils/logger'); // 加载模型关联关系 require('./models'); // 导入路由 const apartmentRoutes = require('./routes/apartment'); const roomRoutes = require('./routes/room'); const rentalRoutes = require('./routes/rental'); const statisticsRoutes = require('./routes/statistics'); const waterBillRoutes = require('./routes/waterBill'); const electricityBillRoutes = require('./routes/electricityBill'); const authRoutes = require('./routes/auth'); const userRoutes = require('./routes/user'); const roleRoutes = require('./routes/role'); const menuRoutes = require('./routes/menu'); const logRoutes = require('./routes/log'); const app = express(); const PORT = process.env.PORT || 3000; // 中间件 app.use(cors()); app.use(express.json()); app.use(express.urlencoded({ extended: true })); // 公开路由(不需要认证) app.use('/api/auth', authRoutes); // 需要认证的路由 app.use('/api/apartments', authMiddleware, operationLogMiddleware({ module: '公寓管理' }), apartmentRoutes); app.use('/api/rooms', authMiddleware, operationLogMiddleware({ module: '房间管理' }), roomRoutes); app.use('/api/rentals', authMiddleware, operationLogMiddleware({ module: '租房管理' }), rentalRoutes); app.use('/api/statistics', authMiddleware, operationLogMiddleware({ module: '统计分析' }), statisticsRoutes); app.use('/api/water-bills', authMiddleware, operationLogMiddleware({ module: '水费管理' }), waterBillRoutes); app.use('/api/electricity-bills', authMiddleware, operationLogMiddleware({ module: '电费管理' }), electricityBillRoutes); app.use('/api/users', authMiddleware, operationLogMiddleware({ module: '用户管理' }), userRoutes); app.use('/api/roles', authMiddleware, operationLogMiddleware({ module: '角色管理' }), roleRoutes); app.use('/api/menus', authMiddleware, operationLogMiddleware({ module: '菜单管理' }), menuRoutes); app.use('/api/logs', authMiddleware, logRoutes); // 测试接口 app.get('/', (req, res) => { res.json({ message: 'Rentease API 服务运行正常' }); }); // 启动服务器 app.listen(PORT, () => { console.log(`服务器运行在 http://localhost:${PORT}`); }); module.exports = app;