94 lines
2.4 KiB
JavaScript
94 lines
2.4 KiB
JavaScript
// 环境配置
|
|
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() |