基于Iris、Mysql、Layui框架的项目实践

基于Iris、Mysql、Layui框架的项目实践

  1. 参考文档
    iris文档:https://www.iris-go.com/docs/#/
    项目文档:http://docs.iris.layui.easygoadmin.vip/#/started?id=intro
  2. 产品概述:基于 Go 语言采用Iris、Layui、MySQL等技术栈精心打造的一款集模块化、高性能、组件化于一体的企业级敏捷开发框架,本着简化开发、提升开发效率的初衷,框架自研了一套个性化的组件,实现了可插拔的组件式开发方式:单图上传、多图上传、下拉选择、开关按钮、单选按钮、多选按钮、图片裁剪等等一系列个性化、轻量级的组件,是一款真正意义上实现组件化开发的敏捷开发框架。
  3. 需要的包:

    “github.com/kataras/iris/v12”
    “github.com/mojocn/base64Captcha”

  4. Captcha图形验证码,配置
// 验证码
func Captcha(ctx iris.Context) {
	// 验证码参数配置:字符,公式,验证码配置
	var configC = base64Captcha.ConfigCharacter{
		Height: 60,
		Width:  240,
		//const CaptchaModeNumber:数字,CaptchaModeAlphabet:字母,CaptchaModeArithmetic:算术,CaptchaModeNumberAlphabet:数字字母混合.
		Mode:               base64Captcha.CaptchaModeNumberAlphabet,
		ComplexOfNoiseText: base64Captcha.CaptchaComplexLower,
		ComplexOfNoiseDot:  base64Captcha.CaptchaComplexLower,
		IsShowHollowLine:   true,
		IsShowNoiseDot:     false,
		IsShowNoiseText:    false,
		IsShowSlimeLine:    false,
		IsShowSineLine:     false,
		CaptchaLen:         6,
		UseCJKFonts:        true,
	}
	///create a characters captcha.
	idKeyC, capC := base64Captcha.GenerateCaptcha("", configC)
	//以base64编码
	base64stringC := base64Captcha.CaptchaWriteToBase64Encoding(capC)

	// 返回结果集
	ctx.JSON(utils.CaptchaRes{
		Code:  0,
		IdKey: idKeyC,
		Data:  base64stringC,
		Msg:   "操作成功",
	})
}
// 登陆图形验证码
type CaptchaRes struct {
	Code  int         `json:"code"`  //响应编码 0 成功 500 错误 403 无权限
	Msg   string      `json:"msg"`   //消息
	Data  interface{} `json:"data"`  //数据内容
	IdKey string      `json:"idkey"` //验证码ID
}
// 返回信息
type JsonResult struct {
	Code  int         `json:"code"`  // 响应编码:0成功 401请登录 403无权限 500错误
	Msg   string      `json:"msg"`   // 消息提示语
	Data  interface{} `json:"data"`  // 数据对象
	Count int64       `json:"count"` // 记录总数
}

5.如果前端发送的是formdata格式,后端使用ctx.ReadForm(&xx)接收

data: formData,  
processData: false,  
contentType: false,  
dataType: "json",  

6.如果前端发送的是json格式,后端使用ctx.ReadJson(&xxx)接收

contentType: "application/json",
dataType: "json",