backend/
├── .env # 实际环境变量配置(不要提交到git)
├── .env.example # 配置模板(可提交到git)
├── .env.development # 开发环境配置
├── .env.staging # 测试环境配置
└── .env.production # 生产环境配置
.env:本地开发环境配置.env.example:配置模板,供团队成员参考.env.development:开发服务器环境配置.env.staging:测试环境配置.env.production:生产环境配置# 生成安全的JWT密钥(Linux/Mac)
openssl rand -base64 64
# 生成安全的JWT密钥(Windows PowerShell)
[System.Convert]::ToBase64String([System.Security.Cryptography.RandomNumberGenerator]::GetBytes(64))
# 启动MongoDB服务
mongod --dbpath /data/db --port 27017
# 创建管理员用户
use admin
db.createUser({
user: "admin",
pwd: "secure-password",
roles: ["root"]
})
# 启动Redis服务
redis-server --requirepass "your-redis-password"
# 复制模板文件
cp .env.example .env
# 或者创建新的配置文件
cp .env.example .env.development
# 启动本地MongoDB
mongod --dbpath ./data/db --port 27017
# 启动本地Redis
redis-server --port 6379 --requirepass "dev-redis-password"
# 启动Parse Server
npm run parse:dev
# .env.development
NODE_ENV=development
PORT=3000
# 使用本地服务
MONGODB_URI=mongodb://localhost:27017/ecommerce-ai-dev
REDIS_URL=redis://localhost:6379
# 开发环境使用测试密钥
ALIPAY_APP_ID=沙箱环境AppID
WECHAT_PAY_MCH_ID=测试商户号
# 创建生产环境配置
cp .env.example .env.production
# .env.production
NODE_ENV=production
PORT=80
# 使用生产数据库
MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/ecommerce-ai
REDIS_URL=redis://:password@redis-host:6379
# 生产环境使用真实密钥
ALIPAY_APP_ID=真实AppID
WECHAT_PAY_MCH_ID=真实商户号
# 生成生产环境JWT密钥
JWT_SECRET=$(openssl rand -base64 64)
# 设置强密码
MONGO_ROOT_PASSWORD=$(openssl rand -base64 32)
REDIS_PASSWORD=$(openssl rand -base64 32)
# 检查dotenv配置
import dotenv from 'dotenv';
dotenv.config({ path: '.env' });
# 检查文件路径
console.log(process.cwd());
# 检查MongoDB服务状态
mongod --version
# 测试连接
mongosh "mongodb://localhost:27017"
# 检查Redis服务状态
redis-cli ping
# 测试认证
redis-cli -a your-password ping
# 设置调试模式
DEBUG=app:*,api:*,db:* npm start
# 查看环境变量
console.log('Database URL:', process.env.MONGODB_URI);
// 验证必需的环境变量
const requiredEnvVars = [
'JWT_SECRET',
'MONGODB_URI',
'PARSE_APP_ID',
'PARSE_MASTER_KEY'
];
requiredEnvVars.forEach(envVar => {
if (!process.env[envVar]) {
throw new Error(`Missing required environment variable: ${envVar}`);
}
});
# 使用环境变量文件
COPY .env.production .env
# 或者使用Docker secrets
docker secret create jwt_secret - < ./secrets/jwt_secret.txt
# 使用Parameter Store
aws ssm put-parameter --name "/ecommerce-ai/jwt-secret" --value "secret-value" --type SecureString
# 使用KMS加密
aliyun kms Encrypt --KeyId key-id --Plaintext "secret-value"
# 使用安全扫描工具
npm audit
snyk test
本指南提供了AI智能销售平台的环境配置完整流程。请按照步骤配置各个环境,并严格遵守安全最佳实践。如有问题,请参考故障排除章节或联系技术支持。