【Go实战 | 电商平台】(2) 项目结构及配置文件初始化

文章目录

1. 必备环境与推荐软件

1.1 必备环境

1.2 推荐软件

2. 项目初始化

3. 配置文件初始化

3.1 config.ini

3.2 conf.go

3.3 main函数

1. 必备环境与推荐软件

1.1 必备环境

mysql

redis

golang

1.2 推荐软件

goland

navicat

runapi

2. 项目初始化

创建项目

【Go实战 | 电商平台】(2) 项目结构及配置文件初始化


创建文件夹

【Go实战 | 电商平台】(2) 项目结构及配置文件初始化


项目结构

mall/
├── api
├── cache
├── conf
├── middleware
├── model
├── pkg
│  ├── e
│  ├── util
├── routes
├── serializer
└── service


- api : 用于定义接口函数
- cache : 放置redis缓存
- conf : 用于存储配置文件
- middleware : 应用中间件
- model : 应用数据库模型
- pkg/e : 封装错误码
- pkg/util : 工具函数
- routes : 路由逻辑处理
- serializer : 将数据序列化为 json 的函数
- service : 接口函数的实现


go mod 管理包依赖

【Go实战 | 电商平台】(2) 项目结构及配置文件初始化


换源

【Go实战 | 电商平台】(2) 项目结构及配置文件初始化


3. 配置文件初始化

在conf文件夹下创建config.ini和conf.go

【Go实战 | 电商平台】(2) 项目结构及配置文件初始化


3.1 config.ini

先进行mysql的配置


#debug开发模式,release生产模式
[service]
AppMode = debug
HttpPort = :3000

[mysql]
Db = mysql
DbHost = 127.0.0.1
DbPort = 3306
DbUser = root
DbPassWord = root
DbName = mail_db

3.2 conf.go

配置文件

var (
    AppMode     string
    HttpPort    string
    Db            string
    DbHost        string
    DbPort        string
    DbUser        string
    DbPassWord    string
    DbName        string
)


读取配置文件

func Init() {
    //从本地读取环境变量
    file, err := ini.Load("./conf/config.ini")
    if err != nil {
  fmt.Println("配置文件读取错误,请检查文件路径:", err)
    }
    LoadServer(file)
    LoadMysqlData(file)
    //MySQL
    path := strings.Join([]string{DbUser, ":", DbPassWord, "@tcp(", DbHost, ":", DbPort, ")/", DbName, "?charset=utf8&parseTime=true"}, "")
    model.Database(path)
}


加载配置

func LoadServer(file *ini.File) {
    AppMode = file.Section("service").Key("AppMode").String()
    HttpPort = file.Section("service").Key("HttpPort").String()
}

func LoadMysqlData(file *ini.File) {
    Db = file.Section("mysql").Key("Db").String()
    DbHost = file.Section("mysql").Key("DbHost").String()
    DbPort = file.Section("mysql").Key("DbPort").String()
    DbUser = file.Section("mysql").Key("DbUser").String()
    DbPassWord = file.Section("mysql").Key("DbPassWord").String()
    DbName = file.Section("mysql").Key("DbName").String()
}

3.3 main函数

在main函数中进行初始化配置

【Go实战 | 电商平台】(2) 项目结构及配置文件初始化


还有一些配置没有写进去的。redis、七牛云的配置啥的。


我们后面用到的时候才补上去吧。


上一篇:【Go实战 | 电商平台】(1) 需求分析


下一篇:jquery chosen 插件多选初始化