在 GAE Go 中,为了记录,我们需要创建一个新的上下文,使用appengine.NewContext(r)which returns context.Context。如何使用此上下文在请求范围内设置/获取变量?在 Gorilla 中,Context在上下文中有一个干净的 Set/Get 函数,这是我想在我的代码中使用的。但是我不想导入 2 个不同的上下文包。GAE 日志记录强制您使用context.Context.//handlerFuncfunc MyFunc(w http.ResponseWriter, r *http.Request) { ctx := appengine.NewContext(r) // I want to set request scoped variables in context and pass it to doSomething. doSomething(ctx,w,r);}func doSomething(ctx context.Context, w http.ResponseWriter, r *http.Request) { log.Debugf(ctx, "Beginning doSomething"); //requires context parameter // get the request scoped variables from context. How? Use Gorilla Context?}
1 回答
缥缈止盈
TA贡献2041条经验 获得超4个赞
import (
"golang.org/x/net/context"
gorillacontext "github.com/gorilla/context"
)
我知道这是不是你想要的答案,但有没有办法解决它,因为“背景下的围棋标准库(由App Engine的使用)”包不提供你想要比大猩猩“的功能范围内”包. 如果要使用定义自己的“上下文”包的其他框架,则需要使用多个导入。
在小组讨论中对这两个上下文提出了一个很好的观点,因为可能 Gorilla 的上下文被错误命名,因为它们都用于不同的目的——“App Engine 一个存储凭据以发出 RPC 请求;Gorilla 一个只是请求的容器全球性。”
- 1 回答
- 0 关注
- 143 浏览
添加回答
举报
0/150
提交
取消