1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- require('dotenv').config();
- const express = require('express');
- const cors = require('cors');
- const helmet = require('helmet');
- const morgan = require('morgan');
- const { pool } = require('./config/db'); // 添加这行导入
- const routes = require('./routes');
- const errorHandler = require('./middlewares/error');
- const app = express();
- // 中间件
- app.use(cors());
- app.use(helmet());
- app.use(morgan('dev'));
- app.use(express.json());
- app.use(express.urlencoded({ extended: true }));
- app.use(cors({
- origin: process.env.FRONTEND_URL || 'http://localhost:5173', // 假设 Vue 运行在 5173
- methods: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH'],
- allowedHeaders: ['Content-Type', 'Authorization']
- }));
- // 测试数据库连接的路由
- app.get('/test-db', async (req, res) => {
- try {
- const [rows] = await pool.query('SELECT 1 + 1 AS result');
- res.json({
- success: true,
- data: rows[0],
- message: '数据库连接正常'
- });
- } catch (error) {
- console.error('数据库连接测试失败:', error);
- res.status(500).json({
- success: false,
- error: error.message,
- code: error.code, // 添加数据库错误代码
- stack: process.env.NODE_ENV === 'development' ? error.stack : undefined
- });
- }
- });
- // 注册路由
- app.use('/api', routes);
- // 错误处理中间件(必须放在所有路由之后)
- app.use(errorHandler);
- // 404 处理
- app.use((req, res) => {
- res.status(404).json({
- success: false,
- error: 'Endpoint not found'
- });
- });
- // 启动服务器
- const PORT = process.env.PORT || 3000;
- app.listen(PORT, () => {
- console.log(`Server running on port ${PORT}`);
- console.log(`测试数据库连接: http://localhost:${PORT}/test-db`);
- });
- module.exports = app;
|