为什么这个大猩猩会话代码不起作用?

时间:2015-03-10 20:07:24

标签: session go gorilla

我是一个golang noob,因此我通过为基于大猩猩的网络应用程序设置种子项目来制作我的第一个玩具应用程序。它进展顺利,但会话代码没有像我预期的那样工作,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

1 个答案:

答案 0 :(得分:0)

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