猿问

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

我是一个 golang 菜鸟,所以我正在通过为基于 gorilla 的 Web 应用程序设置种子项目来制作我的第一个玩具应用程序。一切顺利,但会话代码没有像我预期的那样工作,这里是完整的代码,这里只是相关的片段:


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


呼啦一阵风
浏览 186回答 1
1回答

呼如林

感谢 JimB 指出了明显的痛苦,我需要session.Save(r, w)在创建/编辑会话后添加一个调用。
随时随地看视频慕课网APP

相关分类

Go
我要回答