diff --git a/app.js b/app.js new file mode 100644 index 0000000..bcabfa2 --- /dev/null +++ b/app.js @@ -0,0 +1,46 @@ +require('dotenv').config(); +const express = require('express'); +const mongoose = require('mongoose'); +const cors = require('cors'); +const morgan = require('morgan'); + +// 导入路由 +const authRoutes = require('./routes/auth'); +const examRoutes = require('./routes/exams'); +const resultRoutes = require('./routes/results'); + +// 初始化应用 +const app = express(); + +// 中间件 +app.use(cors()); +app.use(morgan('dev')); +app.use(express.json()); + +// 数据库连接 +mongoose.connect(process.env.MONGODB_URI) + .then(() => console.log('Connected to MongoDB')) + .catch(err => console.error('MongoDB connection error:', err)); + +// 路由 +app.use('/api/auth', authRoutes); +app.use('/api/exams', examRoutes); +app.use('/api/results', resultRoutes); + +// 错误处理中间件 +app.use((err, req, res, next) => { + console.error(err.stack); + res.status(500).json({ message: 'Something went wrong!' }); +}); + +// 启动服务器 +const PORT = process.env.PORT || 5000; +app.listen(PORT, () => { + console.log(`Server running on port ${PORT}`); +}); +// 在app.js中添加更详细的CORS配置 +app.use(cors({ + origin: 'http://localhost', // 或你的前端实际域名 + methods: ['GET', 'POST', 'PUT', 'DELETE'], + allowedHeaders: ['Content-Type', 'Authorization'] +})); \ No newline at end of file