程序应用环境变量和配置
目录
环境变量
由大写字母组成,文件或 SET 方式导入环境
可申明一个主环境变量:APP_ENV
APP_ENV 枚举: local / development / testing / staging / production
环境定义
- 系统环境:由系统、虚拟机或容器提供的环境变量
- 应用环境:由当前的应用提供环境变量
查看方式
MacOS / Liunx 打印环境变量
env
Windows 打印环境变量
ls env:
常用策略
- * 为机器申明环境变量
- * 为应用申明环境变量
- 合并机器/应用环境变量到应用中使用
应用配置
多文件组成的配置文件
常用方式
应用中会直接使用配置,而不是环境变量进行判断
方式一
在配置文件中根据
APP_ENV环境变量做判断
.env
APP_ENV=local
config
db = {
type: "mysql"
name: "test"
username: "test"
password: env('APP_ENV') != "production" ? "test" : "123456"
}
controller
const password = config('db.password');
方式二
在配置文件中直接读取相应的环境变量
.env
APP_ENV=local
DB_TYPE=mysql
DB_NAME=test
DB_USERNAME=test
DB_PASSWORD=test
config
db = {
type: env('DB_TYPE'),
name: env('DB_NAME'),
username: env('DB_USERNAME'),
password: env('DB_PASSWORD')
};
controller
const password = config('db.password');
方式三
应用直接拉取配置中心的配置
container
APP_ENV=local
config
$.ajax('https://config.wishrd.cn/?APP_NAME=xxx&APP_ENV=${APP_ENV}');
controller
const password = config('db.password');