Files
gamer/server/config.js
T

61 lines
1.6 KiB
JavaScript
Raw Normal View History

/**
* 应用配置
*/
2026-07-01 16:13:47 +08:00
const isProduction = process.env.NODE_ENV === 'production';
const jwtSecret = process.env.JWT_SECRET || '';
if (isProduction && !jwtSecret) {
throw new Error('JWT_SECRET must be set in production');
}
module.exports = {
// 服务器配置
port: process.env.PORT || 3000,
2026-07-12 17:50:04 +08:00
host: process.env.HOST || (isProduction ? '127.0.0.1' : '0.0.0.0'),
trustProxy: process.env.TRUST_PROXY || (isProduction ? 'loopback' : false),
// JWT 配置
2026-07-01 16:13:47 +08:00
jwtSecret: jwtSecret || 'dev-only-gamer-order-secret',
jwtExpiresIn: '7d',
2026-07-01 16:13:47 +08:00
// 注册默认关闭,生产环境可通过 ENABLE_REGISTRATION=true 显式开启
enableRegistration: process.env.ENABLE_REGISTRATION === 'true',
// CORS 配置:默认同源;如需跨域,用逗号分隔配置 CORS_ORIGINS
corsOrigins: (process.env.CORS_ORIGINS || '')
.split(',')
.map(s => s.trim())
.filter(Boolean),
// 缓存配置
cache: {
ttl: 2 * 60 * 1000, // 缓存有效期 2 分钟
maxSize: 100 // 最大缓存条目数
},
// 分页配置
pagination: {
defaultLimit: 20, // 默认每页条数
maxLimit: 100 // 最大每页条数
},
2026-07-01 16:13:47 +08:00
import: {
maxRecords: 5000
},
// 日志配置
log: {
level: process.env.LOG_LEVEL || 'info', // debug, info, warn, error
colorize: true
},
// 允许的类别
categories: {
income: ['接单', '派单', '红包收入', '奶茶'],
expense: ['红包支出', '比心', '其他支出']
},
// 允许的联系人字段
contactFields: ['boss', 'partner', 'source', 'destination']
2026-07-01 16:13:47 +08:00
};