iris-go后台模版
序
本文是基于iris 12 扩展编写的类似eggjs框架结构。这里就简单介绍一下什么是iris,iris主要侧重于Web开发,提供了Web开发的一系列功能组件,基于MVC开发模式。如果你想直接开始,请点击stencil-go。
因为我本人之前写nodejs比较多,所以在学习go的时候就找到iris这个框架,毕竟它的关于里面就有一句A true successor of expressjs and laravel
😄。有了框架之后就得约束一下结构不是,不然大家都随心所欲的写就很混乱了,所以我就参照了eggjs的结构进行设计。(当然这只是我个人的想法,毕竟这也才是我的入门项目,多有不足,还请指教( ´▽`)
基础功能
目录结构
这里就简单介绍下目录约定规范
1 | stencil-go |
app/bindata/**
用于打包配置文件为二进制文件,具体参见bindataapp/controller/**
用于解析用户的输入,处理后返回相应的结果app/core/**
用于解析各种非常但又必须的方法,例如读取配置、初始化日志等app/extend/**
用于框架的扩展,可选app/middleware/**
用于编写中间件,可选app/model/**
用于编写模型文件app/router/**
用于配置 URL 路由规则app/service/**
用于编写业务逻辑层,可选,建议使用build_*
由于构建对应平台的二进制文件config/config.{env}.js
用于编写配置文件config.yml
mysql数据库转 struct 工具,可选 ( gormt配置文件main.go
入口文件,用于加载配置并启动服务public/**
用于放置静态资源,可选output/**
用于放置日志等生成的文件
go 指令
清除模块缓存$GOPATH/pkg/mod
1 | go clean --modcache |
安装打包器 go-bindata
go-bindata -pkg <指定包名> -o <目标输出文件,可包含路径> <源文件,可包含路径>
1 | go get -u github.com/go-bindata/go-bindata/v3/go-bindata |
go-bindata
如果不在环境变量中需要手动配置。在~/.bash_profile
中添加以下行:
1 | # golang |
mysql数据库转 struct 工具 gormt
需要修改根目录下的config.yml
1 | go get -u -v github.com/xxjwxc/gormt@master |
⚠️修改配置文件后,需要运行打包命令使配置生效
1 | go-bindata -pkg config_data -o app/bindata/config/config_data.go config/... |
本地https
测试 mkcert
1 | mkcert -install |
常见问题
go: updates to go.mod needed, disabled by -mod=readonly : packages.Load error
1 | go mod tidy |
参考文档
- iris-go 文档 官方文档
- iris-go 文档 官方文档2
- iris12 文档 三方中文文档
- go语言介绍 三方中文文档
- GORM V2 中文文档 看云文档
- GORM V2 英文文档 官方文档
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Jerome Xiong!
评论