构建项目
项目初始化操作
新建项目文件夹,例如:demo文件夹,创建完成后在文件夹内右键唤处命令行工具,输入
go init mod demo
demo可自定义,名字尽量保持与文件夹名字相同。
因为
:
这一步操作是在创建go的包管理目录,创建后的mod文件最上方会有一行 module demo如下
module demo
项目内的文件互相引用需要根据这个module来获取位置
引用方式如下
import "demo/项目下的文件夹名称"
添加必要的库,本项目需要
gin库:
gin框架,主要用于生成路由,路由管理等
gorm库:
主要用于简化数据库的操作
mysql库:
用于mysql数据库的连接等
viper库:
用于解析yaml文件,读取配置文件
安装这些库之前可以把go的包管理模式切换为mod模式
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
随后在当前文件夹下安装这些库的操作如下
//-u可以不加,-u是为了保证拉取最新的包
go get -u github.com/gin-gonic/gin
go get -u gorm.io/driver/mysql
go get -u gorm.io/gorm
go get -u github.com/spf13/viper
创建目录结构
根据mvc的设计模式,创建文件夹目录
demo
│ README.md
│ main.go //入口文件
└───conf //基础配置,定义数据库名称密码等
│ │ conf.go
│ │ config.yaml
└───models // domain+dao层 - models文件夹,定义实体类,查询数据库。
│ │ initDB.go
└───routers // controller层 - routers文件夹,主要执行与前端的api的映射,调用service层的方法
│ │ router.go //初始化router操作等
│ └───api //api文件夹下分类接口所属模块
└───service //service层 - service文件夹,主要对获取到的数据执行逻辑上的处理,并且返回到controller层
│ │ xxx.go
└───logs //用来存储logs记录
项目详见 https://github.com/jiangbo66666/gin-vue-microBlog
项目致力于做成一个类似微博的社交工具,现在只是初始化,待续。。。。