server项目-先启动

server文件夹为Golang后端项目,需要有Golang基础,Gin框架基础

视频推荐

一步到位

Golang教学

【golang教学】第一章:golang的安装和编辑工具安装(1010工作室出品)

【golang教学】第二章:golang的基础知识——结构,包,变量初探(1010工作室出品)

【golang教学】第三章:golang基本数据类型和变量初探(1010工作室出品)

【golang教学】第四章:golang的流程控制语句(1010工作室出品)

【golang教学】第五章:golang的数组和切片(1010工作室出品)

【golang教学】第六章:golang的map声明和使用(1010工作室出品)

【golang教学】第七章:golang的函数func方法(1010工作室出品)

【golang教学】第八章:golang的指针和地址(1010工作室出品)

【golang教学】第九章:golang的结构体struct声明和使用(1010工作室出品)

【golang教学】第十章:golang的接口interface介绍和工作中的使用(1010工作室出品)

【golang教学】第十一章:golang的并发神器goroutine 和 channel (1010工作室出品)

【golang教学】第十二章:golang的断言 Assertion 和 反射 reflect (1010工作室出品)

Gin教学

【gin教学】第一章:gin的学习前准备工作 hello gin(1010工作室出品)

【gin教学】第二章:gin的get post delete put请求以及获取参数的方式(1010工作室出品)

【gin教学】第三章:使用bind绑定参数和参数验证(1010工作室出品)

【gin教学】第四章:gin对于文件的上传和返回(1010工作室出品)

【gin教学】第五章:gin的中间件和路由分组(1010工作室出品)

【gin教学】第六章:日志介绍以及工具推荐(1010工作室出品)

【gin教学】第七章:初识GROM使用GORM进行数据库操作(1010工作室出品)

【gin教学】第八章:gorm结构体的创建技巧和结合gin使用(1010工作室出品)

gin-vue-admin版本更新说明

【开源项目教学】gin-vue-admin 2.0目录介绍和自动化开发模式(1010工作室出品)

【gin-vue-admin】06/07更新:UI美化,插件功能,自动化代码增加搜索条件 字段描述 结构体中文描述(1010工作室出品)

【gin-vue-admin】V2.1.0大更新:增加字典管理,用户操作日志,从数据库一键创建CURD让自动化更加完善(1010工作室出品)

【gin-vue-admin】V2.2.0更新:增加日志功能,增加v-auth指令,增加一键打包二进制,增加菜单参数,增加令牌续期(1010工作室出品)

【gin-vue-admin】09/20更新:大版本2.3.1发布,gorm更新为v2,项目初始化更加便捷,更多通用功能加入(1010工作室出品)

server项目结构

├── api
│   └── v1
├── config
├── core
├── docs
├── global
│   └── response
├── initialize
├── middleware
├── model
│   ├── request
│   └── response
├── packfile
├── resource
├── router
├── service
└── utils
└── upload
文件夹说明描述
apiapi层api层
--v1v1版本接口v1版本接口
config配置包config.yaml对应的配置结构体
core核心文件核心组件的初始化
docsswagger文档目录swagger文档目录
global全局对象全局对象
--responsejson返回web端的统一封装json返回web端的统一封装
initialize初始化路由,redis,gorm,验证器的初始化
model模型层模型对应数据表
--request入参结构体接收前端发送到后端的数据。
--response出参结构体返回给前端的数据结构体
packfile静态文件打包静态文件打包
resource静态资源文件夹负责存放
router路由层路由层
serviceservice层存放业务逻辑问题
utils工具包工具函数封装
--uploadossoss接口封装

本文使用的环境

  • 数据库选择mysql

  • Goland(2020.2)

1. 初始化server项目

  • Goland打开server文件夹
  • 设置GOPROXY
    • windows:打开File → settings → Go → Go Modules,将 Environment 项的值设置为GOPROXY=https://goproxy.io,direct
    • Mac: 打开Goland→Preferences...→Go → Go Modules,将Environment项的值设置为GOPROXY=https://goproxy.io,direct
  • 打开go.mod文件,在文件空白处鼠标右键点击Go Mod Tidy

2. config.yaml

3. 数据库初始化

请对应版本进行观看初始化数据的方式

V2.4.0~master(最新版)

注意

mac/linux/windows 都不需要配置 server/config.yamlmysql 中的 path , db-name, username ,password

1. 启动server项目 与 web项目

image-20210306215747383

  1. 在浏览器填写 host,port ,userName ,password ,dbName , 点击立即初始化

    image-20210306221404478

  2. 操作成功后会跳转到登录页面, 页面有一个操作成功的提示, 这就是初始化数据成功的标志

    image-20210306221058462

以下为旧版本

V2.0.0~V2.2.0

  • 自行新建数据库,并导入server/db的qmPlus.sql

V2.3.0~V2.3.31

  • comfig.yaml 的mysql的账号密码配置自行修改
  • config.yaml 中的 system 下存在一行 need-init-data: false 将此参数设定为 true
  • 启动项目就自动通过代码方式进行初始化数据
注意

重启项目一定一定一定要记得 need-init-data: false 将此参数设定为 false

V2.3.4~V2.3.9

配置好 server/config.yamlmysql 中的 path , db-name, username ,password,其他的按需修改,我们 flipped-aurora 团队为各位使用者准备好了脚本

windows 用户

方式一(不可见错误报错):

  • // 开启 Go Modules模式并设置代理
    go env -w GO111MODULE=on
    go env -w GOPROXY=https://goproxy.io,direct
  • 直接运行 server 目录下的 initdb.bat (双击)

方式二(可见错误报错):

  • 以server为项目打开的,打开Goland的终端
initdb.bat

linux, mac 用户

# 开启 Go Modules模式并设置代理, 已经设置的用户可跳过
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct
# 在server项目下,先构建gva终端工具
make gva
# 使用gva进行初始化数据, 如果不使用make initdb, 使用./gva initdb也是可以的
make initdb
注意

mysql>=5.7版本的数据库,一定情况下会初始化失败,此时注意数据库编码设置为utf8-mb4,忽略掉时间0值校验,即可解决问题。使用命令行工具运行initdb,或者make可以查看到报错内容。

说明-今后都会使用gva终端工具进行初始化数据,理由如下:

  • V2.3.0~V2.3.31所使用的方式,有人只会改成 true ,第二次启动就忘了改为 false, 导致server项目启动失败
  • 方便新增数据,而不需要跟以前一样修改 .sql 文件
  • gva终端初始化数据是通过代码+gorm的事务进行添加数据,大概率不同版本的mysql之间一些问题的,规避了字符集的问题问题而导致数据的导入失败,或者乱码问题

4. 启动server项目

  • 完成后打开main.go, 在文件空白处鼠标右键点击运行'go build main.go',或者使用图中红色框的右边的快捷键组合进行启动项目或者打开goland的终端,输入命令go run main.go

5. 生成swagger自动化API文档

5.1 安装 swagger

  • 可以翻墙
go get -u github.com/swaggo/swag/cmd/swag
  • 无法翻墙 由于国内没法安装 go.org/x 包下面的东西,推荐使用 goproxy.io 或者 goproxy.cn/
# 如果您使用的 Go 版本是 1.13 及以上(推荐)
# 启用 Go Modules 功能
go env -w GO111MODULE=on
# 配置 GOPROXY 环境变量
go env -w GOPROXY=https://goproxy.io,direct
# 使用如下命令下载swag
go get -u github.com/swaggo/swag/cmd/swag

5.2 生成API文档

cd server
swag init

执行上面的命令后,server目录下会出现docs文件夹,打开浏览器输入 http://localhost:8888/swagger/index.html,即可查看swagger文档

您可能遇到的问题
  1. 启动时报数据库启动失败,请检查是否创建qmsql数据库,或者是否是您自行配置的数据库
  2. 登录时用户名密码错误,请检查数据库文件是否导入