Files
nxxmdata/backend/server.js
2025-08-25 15:00:46 +08:00

97 lines
2.2 KiB
JavaScript

const express = require('express');
const cors = require('cors');
const dotenv = require('dotenv');
const swaggerUi = require('swagger-ui-express');
const swaggerSpec = require('./config/swagger');
const { sequelize } = require('./config/database-simple');
// 加载环境变量
dotenv.config();
// 创建Express应用
const app = express();
const PORT = process.env.PORT || 5350;
// 中间件
app.use(cors());
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
// Swagger 文档路由
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerSpec));
// 基础路由
app.get('/', (req, res) => {
res.json({
message: '宁夏智慧养殖监管平台API服务',
version: '1.0.0',
docs: '/api-docs'
});
});
// 数据库同步
sequelize.sync()
.then(() => {
console.log('数据库同步成功');
})
.catch(err => {
console.error('数据库同步失败:', err);
});
// 认证相关路由
app.use('/api/auth', require('./routes/auth'));
// 用户相关路由
app.use('/api/users', require('./routes/users'));
// 产品相关路由
app.use('/api/products', require('./routes/products'));
// 订单相关路由
app.use('/api/orders', require('./routes/orders'));
// 农场相关路由
app.use('/api/farms', require('./routes/farms'));
// 养殖场相关路由
app.use('/api/farms', require('./routes/farms'));
// 动物相关路由
app.use('/api/animals', require('./routes/animals'));
// 设备相关路由
app.use('/api/devices', require('./routes/devices'));
// 预警相关路由
app.use('/api/alerts', require('./routes/alerts'));
// 统计数据相关路由
app.use('/api/stats', require('./routes/stats'));
// 百度地图API相关路由
app.use('/api/map', require('./routes/map'));
// 处理404错误
app.use((req, res) => {
res.status(404).json({
success: false,
message: '请求的资源不存在'
});
});
// 错误处理中间件
app.use((err, req, res, next) => {
console.error('服务器错误:', err);
res.status(500).json({
success: false,
message: '服务器错误'
});
});
// 启动服务器
app.listen(PORT, () => {
console.log(`服务器运行在端口 ${PORT}`);
console.log(`API 文档地址: http://localhost:${PORT}/api-docs`);
});
module.exports = app;