// 环境配置 const path = require('path') require('dotenv').config({ path: path.join(__dirname, '../../.env') }) const config = { // 开发环境 development: { port: process.env.PORT || 3000, mongodb: { uri: process.env.MONGODB_URI || 'mongodb://localhost:27017/jiebanke_dev', options: { useNewUrlParser: true, useUnifiedTopology: true } }, jwt: { secret: process.env.JWT_SECRET || 'dev-jwt-secret-key-2024', expiresIn: process.env.JWT_EXPIRES_IN || '7d', refreshExpiresIn: process.env.JWT_REFRESH_EXPIRES_IN || '30d' }, redis: { host: process.env.REDIS_HOST || 'localhost', port: process.env.REDIS_PORT || 6379, password: process.env.REDIS_PASSWORD || '' }, upload: { maxFileSize: 5 * 1024 * 1024, // 5MB allowedTypes: ['image/jpeg', 'image/png', 'image/gif'] }, cors: { origin: process.env.CORS_ORIGIN || 'http://localhost:9000', credentials: true } }, // 测试环境 test: { port: process.env.PORT || 3001, mongodb: { uri: process.env.MONGODB_URI || 'mongodb://localhost:27017/jiebanke_test', options: { useNewUrlParser: true, useUnifiedTopology: true } }, jwt: { secret: process.env.JWT_SECRET || 'test-jwt-secret-key-2024', expiresIn: '1h', refreshExpiresIn: '7d' }, upload: { maxFileSize: 2 * 1024 * 1024, // 2MB allowedTypes: ['image/jpeg', 'image/png'] } }, // 生产环境 production: { port: process.env.PORT || 3000, mongodb: { uri: process.env.MONGODB_URI, options: { useNewUrlParser: true, useUnifiedTopology: true } }, jwt: { secret: process.env.JWT_SECRET, expiresIn: process.env.JWT_EXPIRES_IN || '1d', refreshExpiresIn: process.env.JWT_REFRESH_EXPIRES_IN || '7d' }, redis: { host: process.env.REDIS_HOST, port: process.env.REDIS_PORT || 6379, password: process.env.REDIS_PASSWORD }, upload: { maxFileSize: 10 * 1024 * 1024, // 10MB allowedTypes: ['image/jpeg', 'image/png', 'image/webp'] }, cors: { origin: process.env.CORS_ORIGIN || 'https://your-domain.com', credentials: true } } } // 获取当前环境配置 const getConfig = () => { const env = process.env.NODE_ENV || 'development' return config[env] } module.exports = getConfig()