dongpochi9741 2019-02-17 11:59 采纳率: 100%
浏览 250

如何在Golang中将会话变量声明为全局变量

I do not want to repeat this code every time I want to create a session :

 var shash, _ = bcrypt.GenerateFromPassword([]byte(os.Getenv("SESSION_KEY")), bcrypt.DefaultCost)
var store = sessions.NewCookieStore(shash)
session, serr := store.Get(r, "session-name")
if serr != nil {
    ....
}

So, I created a function in a file inc/inc.go in package inc :

func initSession(r *http.Request){
    var shash, _ = bcrypt.GenerateFromPassword([]byte(os.Getenv("SESSION_KEY")), bcrypt.DefaultCost)
    var store = sessions.NewCookieStore(shash)
    session, serr := store.Get(r, "session-name")
    if serr != nil {
        log.Fatal(serr)
        return
    }
}

The function initSession initializes the session object.

There are also global variables in the file inc.go, example :

var DbName string = "dbname"
var DbUser string = "user"
var DbPass string = "pass"
var DbHost string ="localhost"

So that I can access these variables from any file that imports package inc.

My problem is that I do not know how to make session in the function initSession global like the other variables? so that I can access it using inc.Session ?

Also, how do I declare the variable with var Session type , given that I am using package github.com/gorilla/sessions, what should I replace type with?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
    • ¥15 数据可视化Python
    • ¥15 要给毕业设计添加扫码登录的功能!!有偿
    • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
    • ¥15 微信公众号自制会员卡没有收款渠道啊
    • ¥15 stable diffusion
    • ¥100 Jenkins自动化部署—悬赏100元
    • ¥15 关于#python#的问题:求帮写python代码
    • ¥20 MATLAB画图图形出现上下震荡的线条
    • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘