配置说明
配置文件位于项目根目录,支持多环境配置:
youlai-nest/
├── .env # 基础配置
├── .env.dev # 开发环境配置
└── .env.prod # 生产环境配置配置加载
加载顺序:.env → .env.{NODE_ENV} → 环境变量覆盖
bash
NODE_ENV=dev pnpm start:dev # 开发环境
NODE_ENV=prod pnpm start:prod # 生产环境应用配置
env
# 运行环境:dev / prod / test
NODE_ENV=dev
# Nest 应用监听端口
APP_PORT=8000
# 会话类型:jwt | redis-token
SESSION_TYPE=jwt| 配置项 | 默认值 | 说明 |
|---|---|---|
NODE_ENV | dev | 运行环境 |
APP_PORT | 8000 | 应用端口 |
SESSION_TYPE | jwt | 会话类型 |
数据库配置
env
# MySQL 数据库配置
MYSQL_HOST=127.0.0.1
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASSWORD=123456
MYSQL_DB=youlai_admin
# TypeORM SQL 日志输出
TYPEORM_LOGGING=true| 配置项 | 默认值 | 说明 |
|---|---|---|
MYSQL_HOST | localhost | MySQL 主机 |
MYSQL_PORT | 3306 | MySQL 端口 |
MYSQL_USER | root | 数据库用户名 |
MYSQL_PASSWORD | - | 数据库密码 |
MYSQL_DB | youlai_admin | 数据库名称 |
TYPEORM_LOGGING | true | 是否输出 SQL 日志 |
Redis 配置
env
# Redis 配置
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_DB=0
REDIS_PASSWORD=| 配置项 | 默认值 | 说明 |
|---|---|---|
REDIS_HOST | localhost | Redis 主机 |
REDIS_PORT | 6379 | Redis 端口 |
REDIS_DB | 0 | 数据库编号 |
REDIS_PASSWORD | - | Redis 密码 |
JWT 配置
env
# JWT 认证配置
JWT_SECRET_KEY=dev-jwt-secret-change-me
JWT_EXPIRES_IN=7200
JWT_ISSUER=youlai-nest| 配置项 | 默认值 | 说明 |
|---|---|---|
JWT_SECRET_KEY | - | JWT 签名密钥 |
JWT_EXPIRES_IN | 7200 | Token 有效期(秒) |
JWT_ISSUER | youlai-nest | Token 签发方 |
OSS 配置
env
# OSS 类型:aliyun | minio | local
OSS_TYPE=minio
# MinIO 配置
OSS_MINIO_ENDPOINT=http://localhost:9000
OSS_MINIO_ACCESS_KEY=minioadmin
OSS_MINIO_SECRET_KEY=minioadmin
OSS_MINIO_BUCKET=default
# 阿里云 OSS 配置
OSS_ALIYUN_ENDPOINT=oss-cn-hangzhou.aliyuncs.com
OSS_ALIYUN_ACCESS_KEY_ID=your-access-key-id
OSS_ALIYUN_ACCESS_KEY_SECRET=your-access-key-secret
OSS_ALIYUN_BUCKET=default
# 本地存储路径
OSS_LOCAL_STORAGE_PATH=D:/data/oss/| 类型 | 说明 |
|---|---|
minio | MinIO 对象存储 |
aliyun | 阿里云 OSS |
local | 本地文件系统 |
会话模式
| 模式 | 说明 | 适用场景 |
|---|---|---|
jwt | 无状态,Token 自包含信息 | 微服务、分布式 |
redis-token | 有状态,Token 存储在 Redis | 需要会话治理 |
配置使用
typescript
@Injectable()
export class AuthService {
constructor(private configService: ConfigService) {
const jwtSecret = this.configService.get<string>("jwt.secretKey");
}
}环境变量覆盖
bash
docker run -e MYSQL_HOST=192.168.1.100 -e JWT_SECRET_KEY=production-secret youlai-nest:latest相关文件
| 文件 | 说明 |
|---|---|
.env | 基础配置 |
.env.dev | 开发环境配置 |
.env.prod | 生产环境配置 |
src/config/ | 配置模块 |
