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

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

在開發過程中經常會遇見一些問題,現把匯總和解決方案記錄一下。

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)等

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"] = idstrcondArr["status"] = statuscondArr["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"] = tasksthis.Data["paginator"] = paginator

 

目前先匯總一些基本的問題,後面如果遇見,繼續追加~

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.