企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## Beego-Go语言在开发过程遇到一些小问题汇总 在开发过程中经常会遇见一些问题,现把汇总和解决方法记录一下。 1、session设置的问题 在设置session的时候,有整型,有字符串类型,在连接的时候要用到: fmt.Sprintf() + 连接字符串,不格式一下,直接拼接会报错 ~~~ this.SetSession("userLogin", fmt.Sprintf("%d", users.Id)+"||"+users.Username+"||"+users.Avatar) ~~~ 2、session获取问题 在设置好session后,获取的是通过 ~~~ this.GetSession("userLogin") ~~~ 如果userLogin的值是整型的话,不会报错;如果按上面的(第一条),整型与字符串拼接,会报错可以采用: ~~~ this.GetSession("userLogin").(string) ~~~ .(string)有多种类型,如果获取session报错的时候,根据自己的实际情况换成.(int)等 **在非Controller中操作Session** ~~~ import (    "github.com/astaxie/beego/context" ) var FilterAdmin = func(ctx *context.Context) { ctx.Input.CruSession.Get("userLogin")            //读取Session ctx.Input.CruSession.Set("userLogin","yes")    //设置Session ctx.Input.CruSession.Delete("userLogin")         //删除Session } ~~~ 3、长整型转换问题 数字长整型字符串转换成长整型,可以先转换成整型,再转成长整型如: ~~~ userid, _ := strconv.Atoi(tmp[0]) longid := int64(userid) ~~~ 4、长整型数字返回给前端JS,数值溢出问题 在提交或其它操作的时候,经常会返回json格式的给前端,对于长整型的数字,js处理会溢出 在返回的长整型值必须fmt.Sprintf("%d",id)格式化处理一下,这样前端JS就不用处理~ ~~~ this.Data["json"] = map[string]interface{}{"code": 1, "message": "项目信息添加成功", "id": fmt.Sprintf("%d", id)} ~~~ 5、字符串分割成map 在项目中经常会处理一些如“lock,tom,jerry,李白”,现在想把转换成map: ~~~ names := strings.Split("6565243443941654055,4365243443941654055,1454243443941654055,1465243443941654034", ",") var namesmap = make(map[int]int64) for i, v := range ccids {   names, _ := strconv.Atoi(v)   namesmap[i] = int64(names) } fmt.Println(namesmap) ~~~ 6、多条件传递参数,查询在model里经常会写一些通用的方法,会根据不同的条件进行SQL搜索 ~~~ condArr := make(map[string]string) condArr["projectid"] = idstr condArr["status"] = status condArr["type"] = stype ~~~ 在方法中传递condArr就可以了,方法的定义可能是这样 ~~~ func ListProjectTask(condArr map[string]string, page int, offset int) (num int64, err error, ops []ProjectsTask) { ​ } ~~~ 7、Beego分页 要引用: ~~~ "github.com/astaxie/beego/utils/pagination" ~~~ 具体如下: ~~~ countTask := CountTask(condArr) paginator := pagination.SetPaginator(this.Ctx, offset, countTask) _, _, tasks := ListProjectTask(condArr, page, offset) this.Data["tasks"] = tasks this.Data["paginator"] = paginator ~~~ 用beego开发服务端应用:[https://www.cnblogs.com/zhangboyu/p/7760693.html](https://www.cnblogs.com/zhangboyu/p/7760693.html) beego入门文档:[https://blog.csdn.net/zdyueguanyun/article/details/52916481](https://blog.csdn.net/zdyueguanyun/article/details/52916481)