后端版本服务器部署成功

This commit is contained in:
2025-09-11 15:05:23 +08:00
parent 9b7a0482e1
commit 068b7887a9
15 changed files with 575 additions and 410 deletions

View File

@@ -12,13 +12,23 @@ console.log('🔧 初始化Express应用...');
const { globalErrorHandler, notFound } = require('./utils/errors');
// 路由导入
const authRoutes = require('./routes/auth');
const userRoutes = require('./routes/user');
const travelRoutes = require('./routes/travel');
const animalRoutes = require('./routes/animal');
const orderRoutes = require('./routes/order');
const adminRoutes = require('./routes/admin'); // 新增管理员路由
// 检查是否为无数据库模式
const NO_DB_MODE = process.env.NO_DB_MODE === 'true';
let authRoutes, userRoutes, travelRoutes, animalRoutes, orderRoutes, adminRoutes;
// 路由导入 - 根据是否为无数据库模式决定是否导入实际路由
if (NO_DB_MODE) {
console.log('⚠️ 无数据库模式:将使用模拟路由');
} else {
// 路由导入
authRoutes = require('./routes/auth');
userRoutes = require('./routes/user');
travelRoutes = require('./routes/travel');
animalRoutes = require('./routes/animal');
orderRoutes = require('./routes/order');
adminRoutes = require('./routes/admin'); // 新增管理员路由
}
const app = express();
@@ -88,7 +98,8 @@ app.get('/health', (req, res) => {
status: 'OK',
timestamp: new Date().toISOString(),
uptime: process.uptime(),
environment: process.env.NODE_ENV || 'development'
environment: process.env.NODE_ENV || 'development',
noDbMode: NO_DB_MODE
});
});
@@ -103,20 +114,85 @@ app.get('/system-stats', (req, res) => {
uptime: process.uptime(),
cpuCount: require('os').cpus().length,
platform: process.platform,
architecture: process.arch
architecture: process.arch,
noDbMode: NO_DB_MODE
};
res.status(200).json(stats);
});
// API路由
app.use('/api/v1/auth', authRoutes);
app.use('/api/v1/users', userRoutes);
app.use('/api/v1/travel', travelRoutes);
app.use('/api/v1/animals', animalRoutes);
app.use('/api/v1/orders', orderRoutes);
// 管理员路由
app.use('/api/v1/admin', adminRoutes);
// 无数据库模式下的模拟路由
if (NO_DB_MODE) {
// 认证路由
app.use('/api/v1/auth', (req, res) => {
if (req.method === 'POST' && req.path === '/login') {
// 模拟登录响应
res.status(200).json({
success: true,
message: '模拟登录成功',
data: {
token: 'mock-jwt-token',
user: {
id: 1,
username: 'mockuser',
email: 'mock@example.com',
role: 'user'
}
}
});
} else {
res.status(503).json({
success: false,
message: '当前为无数据库模式,该功能不可用'
});
}
});
// 其他路由的通用响应
app.use('/api/v1/users', (req, res) => {
res.status(503).json({
success: false,
message: '当前为无数据库模式,用户管理功能不可用'
});
});
app.use('/api/v1/travel', (req, res) => {
res.status(503).json({
success: false,
message: '当前为无数据库模式,旅行相关功能不可用'
});
});
app.use('/api/v1/animals', (req, res) => {
res.status(503).json({
success: false,
message: '当前为无数据库模式,动物相关功能不可用'
});
});
app.use('/api/v1/orders', (req, res) => {
res.status(503).json({
success: false,
message: '当前为无数据库模式,订单相关功能不可用'
});
});
app.use('/api/v1/admin', (req, res) => {
res.status(503).json({
success: false,
message: '当前为无数据库模式,管理员功能不可用'
});
});
} else {
// API路由
app.use('/api/v1/auth', authRoutes);
app.use('/api/v1/users', userRoutes);
app.use('/api/v1/travel', travelRoutes);
app.use('/api/v1/animals', animalRoutes);
app.use('/api/v1/orders', orderRoutes);
// 管理员路由
app.use('/api/v1/admin', adminRoutes);
}
// 404处理
app.use('*', notFound);