rtc-voice-chat/java-mock/server.js
2026-04-02 20:15:15 +08:00

47 lines
1.3 KiB
JavaScript

require('dotenv').config();
const express = require('express');
const cors = require('cors');
const authRoutes = require('./routes/authRoutes');
const aiProxyRoutes = require('./routes/aiProxyRoutes');
const conversationRoutes = require('./routes/conversationRoutes');
const app = express();
const PORT = process.env.PORT || 8080;
app.use(cors());
app.use(express.json());
// 打印请求头
app.use((req, _res, next) => {
console.log(`\n[${new Date().toISOString()}] ${req.method} ${req.path}`);
console.log('[Headers]', JSON.stringify(req.headers, null, 2));
next();
});
// 健康检查
app.get('/health', (req, res) => {
res.json({ status: 'ok', service: 'java-mock', timestamp: new Date().toISOString() });
});
// 路由
app.use('/api/auth', authRoutes);
app.use('/api/ai', aiProxyRoutes);
app.use('/api/ai/conversations', conversationRoutes);
// 404
app.use((req, res) => {
res.status(404).json({ code: 404, message: `Not Found: ${req.method} ${req.path}` });
});
// 全局错误处理
app.use((err, req, res, _next) => {
console.error('[Error]', err);
res.status(500).json({ code: 500, message: err.message || '服务器内部错误' });
});
app.listen(PORT, () => {
console.log(`java-mock 启动成功 → http://localhost:${PORT}`);
console.log(`Python 后端地址: ${process.env.PYTHON_BACKEND_URL || 'http://localhost:3001'}`);
});