require('dotenv').config(); const express = require('express'); const cors = require('cors'); const { initDatabase } = require('./config/database'); const cronScheduler = require('./config/cronScheduler'); const app = express(); const PORT = process.env.PORT || 3000; // 中间件 app.use(cors()); app.use(express.json({ limit: '10mb' })); // 路由 const postsRouter = require('./routes/posts'); const aboutRouter = require('./routes/about'); const settingsRouter = require('./routes/settings'); const cronRouter = require('./routes/cron'); const configRouter = require('./routes/config'); app.use('/api/posts', postsRouter); app.use('/api/about', aboutRouter); app.use('/api/settings', settingsRouter); app.use('/api/cron-tasks', cronRouter); app.use('/api/config', configRouter); // 健康检查 app.get('/api/health', (req, res) => { res.json({ status: 'ok', timestamp: new Date().toISOString() }); }); // 错误处理 app.use((err, req, res, next) => { console.error('Error:', err); res.status(500).json({ error: '服务器内部错误' }); }); // 启动服务器 async function start() { await initDatabase(); // 启动定时任务调度器 cronScheduler.start(); app.listen(PORT, () => { console.log(`🚀 服务器运行在 http://localhost:${PORT}`); console.log(`📖 API 文档: http://localhost:${PORT}/api/health`); }); } start();