| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- const express = require('express');
- const router = express.Router(); // 修复多余的分号
- const roomController = require('./controllers/roomController');
- const deviceController = require('./controllers/deviceController');
- const relayController = require('./controllers/relayController');
- const authController = require('./controllers/authController');
- const otaController = require('./controllers/otaController');
- const logger = require('./logger');
- const heaterUsageController = require('./controllers/heaterUsageController');
- // 中间件:记录所有API请求
- router.use((req, res, next) => {
- logger.info(`收到 ${req.method} 请求: ${req.originalUrl}`);
- logger.debug('请求体:', req.body);
- next();
- });
- // 注册接口
- router.post('/api/register', (req, res, next) => {
- logger.info(`新用户注册请求: ${req.body.username}`);
- next();
- }, authController.register);
- // 登录接口
- router.post('/api/login', (req, res, next) => {
- logger.info(`用户登录请求: ${req.body.username}`);
- next();
- }, authController.login);
- // 房间相关路由
- router.get('/api/rooms', (req, res, next) => {
- logger.info('获取所有房间列表请求');
- next();
- }, roomController.getRooms);
- router.post('/api/rooms', (req, res, next) => {
- logger.info(`创建新房间请求: ${req.body.room_name}`);
- next();
- }, roomController.addRoom);
- router.put('/api/rooms/:id', (req, res, next) => {
- logger.info(`更新房间信息请求, ID: ${req.params.id}`);
- next();
- }, roomController.updateRoom);
- router.delete('/api/rooms/:id', (req, res, next) => {
- logger.info(`删除房间请求, ID: ${req.params.id}`);
- next();
- }, roomController.deleteRoom);
- // 设备相关路由
- router.get('/api/devices', (req, res, next) => {
- logger.info('获取所有设备列表请求');
- next();
- }, deviceController.getDevices);
- // 删除重复的路由定义,只保留这个 ▼▼▼
- router.get('/firmware-versions', otaController.getFirmwareVersions);
- // 修改为正确的控制器方法 ▼▼▼
- router.get('/firmware-versions', otaController.getFirmwareVersions || ((req, res) => {
- res.status(501).json({ code: 501, message: '功能暂未实现' });
- }));
- // 新增:获取所有房间及其设备信息
- router.get('/api/all-rooms-with-devices', (req, res, next) => {
- logger.info('获取所有房间及其设备信息请求');
- next();
- }, deviceController.getAllRoomsWithDevices);
- router.post('/api/devices/bind', (req, res, next) => {
- logger.info(`绑定设备请求: 设备ID=${req.body.deviceId}, 房间ID=${req.body.roomId}`);
- next();
- }, deviceController.bindDeviceToRoom);
- router.post('/api/devices/unbind/:deviceId', (req, res, next) => {
- logger.info(`解绑设备请求: ${req.params.deviceId}`);
- next();
- }, deviceController.unbindDevice);
- router.delete('/api/devices/:deviceId', (req, res, next) => {
- logger.info(`删除设备请求: ${req.params.deviceId}`);
- next();
- }, deviceController.deleteDevice);
- router.post('/api/devices/update', (req, res, next) => {
- logger.info(`更新设备信息请求: ${req.body.deviceId}`);
- next();
- }, deviceController.updateDevice);
- router.get('/api/device-status', (req, res, next) => {
- logger.info('获取设备状态请求');
- next();
- }, deviceController.getDeviceStatus);
- router.get('/api/device-status-by-room', (req, res, next) => {
- logger.info(`获取房间设备状态请求, 房间ID: ${req.query.roomId}`);
- next();
- }, deviceController.getDeviceStatusByRoom);
- router.get('/api/devices-by-room', (req, res, next) => {
- logger.info(`获取房间设备列表请求, 房间ID: ${req.query.roomId}`);
- next();
- }, deviceController.getDevicesByRoom);
- router.get('/api/gpio-state', (req, res, next) => {
- logger.info(`获取GPIO状态请求, 设备ID: ${req.query.deviceId}`);
- next();
- }, deviceController.getGpioState);
- // 继电器控制路由
- router.get('/relay/:state', (req, res, next) => {
- logger.info(`继电器控制请求: 状态=${req.params.state}, 房间ID=${req.query.roomId}`);
- next();
- }, relayController.toggleRelay);
- router.post('/send-relay-id-to-sensor/:roomId', (req, res, next) => {
- logger.info(`发送继电器ID到传感器请求, 房间ID: ${req.params.roomId}`);
- next();
- }, relayController.sendRelayIdToSensor);
- // 绑定继电器到人体传感器
- router.post('/api/devices/bind-relay-to-sensor', (req, res, next) => {
- logger.info(`绑定继电器到传感器请求: 传感器ID=${req.body.sensorId}, 房间ID=${req.body.roomId}`);
- next();
- }, deviceController.bindRelayToSensor);
- // 检查更新
- // 定义OTA路由
- // 取消注释并更新OTA路由
- router.post('/check-updates', otaController.checkUpdates);
- router.get('/download-firmware', otaController.downloadFirmware);
- router.post('/start-upgrade', otaController.startUpgrade);
- // 新增固件上传接口
- router.post('/upload-firmware',
- otaController.uploadFirmware.single('firmware'),
- otaController.handleFirmwareUpload
- );
- // 错误处理中间件
- router.use((err, req, res, next) => {
- logger.error('路由错误:', err);
- res.status(500).json({
- success: false,
- message: '服务器内部错误'
- });
- });
- router.get('/api/heater-usage', (req, res, next) => {
- logger.info('获取电暖器使用数据请求');
- next();
- }, heaterUsageController.getUsageData);
- // 在路由文件中添加(约130行附近)
- router.post('/check-device-update', otaController.checkDeviceUpdate);
- module.exports = router;
|