Beego-Go語言在開發過程遇到一些小問題彙總

在開發過程當中常常會碰見一些問題,現把彙總和解決方法記錄一下。前端

一、session設置的問題git

在設置session的時候,有整型,有字符串類型,在鏈接的時候要用到:github

fmt.Sprintf() + 鏈接字符串,不格式一下,直接拼接會報錯json

this.SetSession("userLogin", fmt.Sprintf("%d", users.Id)+"||"+users.Username+"||"+users.Avatar)

二、session獲取問題bash

在設置好session後,獲取的是經過session

this.GetSession("userLogin")

若是userLogin的值是整型的話,不會報錯;若是按上面的(第一條),整型與字符串拼接,會報錯this

能夠採用:code

this.GetSession("userLogin").(string)

.(string)有多種類型,若是獲取session報錯的時候,根據本身的實際狀況換成.(int)等ci

在非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
}

 

三、長整型轉換問題

數字長整型字符串轉換成長整型,能夠先轉換成整型,再轉成長整型

如:

userid, _ := strconv.Atoi(tmp[0])
longid := int64(userid)

四、長整型數字返回給前端JS,數值溢出問題

在提交或其它操做的時候,常常會返回json格式的給前端,對於長整型的數字,js處理會溢出

在返回的長整型值必須fmt.Sprintf("%d",id)格式化處理一下,這樣前端JS就不用處理~

this.Data["json"] = map[string]interface{}{"code": 1, "message": "項目信息添加成功", "id": fmt.Sprintf("%d", id)}

五、字符串分割成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)

六、多條件傳遞參數,查詢

在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) {

}

七、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

 

目前先彙總一些基本的問題,後面若是碰見,繼續追加~

相關文章
相關標籤/搜索