package config import ( "encoding/json" "fmt" "io/ioutil" "log" "os" "path" "path/filepath" ) var ( WorkDir string // 项目的根目录 DBConfig map[string]string // 数据库参数配置 ) // 初始化解析Env配置文件 func init() { // 需要编译后才能生效 WorkDir = filepath.Dir(os.Args[0]) err := os.Setenv("GOPATH", WorkDir) data, err := ioutil.ReadFile(path.Join(WorkDir, ".env")) if err != nil { log.Fatal(err) } result := make(map[string]string) // 把uint8形式转换为map类型数据 // []byte(data) 对字节数组转换成byte类型数据 err = json.Unmarshal([]byte(data), &result) if err != nil { log.Fatal(err) } // 数据库配置map dBMap := make(map[string]string) // 格式化数据库链接 CmsConnect := fmt.Sprintf("%s:%s@tcp(%s:%s)/cms?charset=utf8mb4", result["DB_CMS_USER"], result["DB_CMS_PASS"], result["DB_CMS_HOST"], result["DB_CMS_PORT"]) BaseConnect := fmt.Sprintf("%s:%s@tcp(%s:%s)/base?charset=utf8mb4", result["DB_BASE_USER"], result["DB_BASE_PASS"], result["DB_BASE_HOST"], result["DB_BASE_PORT"]) SmsConnect := fmt.Sprintf("%s:%s@tcp(%s:%s)/sms?charset=utf8mb4", result["DB_SMS_USER"], result["DB_SMS_PASS"], result["DB_SMS_HOST"], result["DB_SMS_PORT"]) dBMap["cms"], dBMap["base"], dBMap["sms"] = CmsConnect, BaseConnect, SmsConnect DBConfig = dBMap }