session - 为什么这个 gorilla session 代码不起作用?

标签 session go gorilla

我是一个 golang 菜鸟,所以我正在通过为基于 gorilla 的网络应用程序设置种子项目来制作我的第一个玩具应用程序。一切顺利,但 session 代码无法正常工作,here is the full code ,这里只是相关的片段:

func getMyCounter(w http.ResponseWriter, r *http.Request){
    session, _ := sessionStore.Get(r, counterSession)
    if session.IsNew {
        session.Values[myCounter] = 0
    }
    val := session.Values[myCounter].(int)
    log.Printf("getMyCounter %d", val)
    m := make(map[string]int)
    m["counter"] = val
    js, _ := json.Marshal(m)
    w.Header().Set("Content-Type", "application/json")
    w.Write(js)
}

func incrementMyCounter(w http.ResponseWriter, r *http.Request){
    log.Println("incrementMyCounter")
    session, _ := sessionStore.Get(r, counterSession)
    if session.IsNew {
        session.Values[myCounter] = 0
    }
    val := session.Values[myCounter].(int)
    session.Values[myCounter] = val + 1
    getMyCounter(w, r)
}

我对 getMyCounter 和 incrementMyCounter 的调用总是返回 0

最佳答案

感谢 JimB 指出了明显的痛苦,我需要在创建/编辑 session 后添加对 session.Save(r, w) 的调用。

关于session - 为什么这个 gorilla session 代码不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28973138/

相关文章:

regex - gorilla Mux 正则表达式

java - 高流量 Web 应用程序中用户 session 的良好替代方案?

python - Flask session 变量

java - Spring MVC 上传大文件后 session 属性丢失

go - 如何使用 go-client 在 kubernetes 中获取 pod 的状态

go - 如何理解core/types/block.go中的 'rlpHash'方法

PHP - 每个选项卡的 session

go - 在 Go 中使用 UDP 的客户端/服务器

http - Golang 在服务器运行时获得 404

球童代理的 WebSocket 握手错误