const express = require('express'); const cors = require('cors'); require('dotenv').config(); // 加载.env环境变量 // 导入数据库连接测试和登录路由 const { testDbConnection } = require('./config/db'); const userRoutes = require('./routes/userRoutes'); // 初始化Express应用 const app = express(); // 1. 配置中间件(必须在挂载路由前) // 解析JSON请求体(登录时前端传的用户名/密码会用JSON格式) app.use(express.json()); // 解析表单请求体(兼容其他场景,如表单提交) app.use(express.urlencoded({ extended: true })); // 配置跨域(允许uni-app前端地址访问,从.env读取配置) app.use(cors({ origin: process.env.CORS_ORIGIN, credentials: true // 允许携带Cookie,后续若需记住登录状态可用 })); // 配置静态资源服务 app.use('/uploads', express.static('uploads')); // 2. 测试数据库连接(启动时自动验证) testDbConnection(); // 3. 挂载路由(所有接口加/api前缀,避免路径冲突) // 登录接口最终地址:http://localhost:3000/api/login app.use('/api', userRoutes); // 4. 全局错误处理中间件(捕获接口异常,返回统一错误格式) app.use((err, req, res, next) => { console.error('服务器异常:', err.stack); res.status(500).json({ code: 500, msg: '服务器内部错误', error: err.message }); }); // 导入产品路由 const productRoutes = require('./routes/productRoutes'); // 挂载产品路由 app.use('/api', productRoutes); // 导出app实例,给server.js调用 module.exports = app;