当前位置: 首页 > 工具软件 > Midway > 使用案例 >

五、Midway 中环境变量的使用

郑旭
2023-12-01

阅读本文前,需要提前阅读前置内容:

一、Midway 增删改查
二、Midway 增删改查的封装及工具类
三、Midway 接口安全认证
四、Midway 集成 Swagger 以及支持JWT bearer
五、Midway 中环境变量的使用

样例源码
DEMO LIVE

通常我们不希望将生产环境的相关配置写在项目代码中,而希望在不同的环境中启动时自动读取环境中设置的配置;
在本教程中,我也不希望将自己的数据库、缓存IP提交到代码仓库,所以可以使用环境变量+host;

安装组件

npm install dotenv --save

初始化环境变量

// src/configuration.ts
import * as dotenv from 'dotenv';

// 初始化环境变量
dotenv.config();

@Configuration({
  imports: [
      // ...
  ]
})
export class ContainerLifeCycle {
    // ...
}

在根目录添加文件.env

// .env
MYSQL_HOST=devserver
MYSQL_USERNAME=dev
MYSQL_PASSWORD=123456
MYSQL_PORT=3306
REDIS_HOST=devserver
REDIS_PORT=6379

在host文件中添加域名映射

// windows电脑
// Windows\System32\drivers\etc\hosts
// xx.xx.xx.xx 为你自己mysql、redis的ip,如果在一台机器上的话
xx.xx.xx.xx devserver

使用环境变量

// src/config/config.default.ts
orm: {
  type: 'mysql',
  host: process.env.MYSQL_HOST,
  port: process.env.MYSQL_PORT,
  username: process.env.MYSQL_USERNAME,
  password: process.env.MYSQL_PASSWORD,
  database: 'midway_boot',
  synchronize: true, // 如果第一次使用,不存在表,有同步的需求可以写 true
  logging: true,
},
// redis配置
redis: {
  client: {
    host: process.env.REDIS_HOST,
    port: process.env.REDIS_PORT,
    db: 0,
  },
},

在生产环境中使用,你可以将环境变量配置到系统中,如果你是Docker启动,可以指定环境变量文件。

版权所有,转载请注明出处 [码道功成]

 类似资料: