97 lines
2.2 KiB
JavaScript
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; |