gpt4 book ai didi

google-app-engine - Google App Engine 上下文。上下文与 gorilla 上下文

转载 作者:IT王子 更新时间:2023-10-29 01:48:01 29 4
gpt4 key购买 nike

在 GAE Go 中,为了记录,我们需要使用 appengine.NewContext(r) 创建一个新的上下文,它返回 context.Context

如何使用此上下文在请求范围内设置/获取变量?在 gorilla 中,Context在上下文中有一个干净的 Set/Get 函数,这是我想在我的代码中使用的。但是我不想导入 2 个不同的上下文包。

GAE 日志记录强制您使用 context.Context

//handlerFunc

func 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?
}

最佳答案

import (
"golang.org/x/net/context"
gorillacontext "github.com/gorilla/context"
)

我知道这不是您想要的答案,但自从 'context与 Gorilla 的 'context 相比,Go 标准库中的包(由 App Engine 使用)不提供您想要的功能' 包裹。如果您想使用定义自己的“上下文”包的其他框架,则需要使用多个导入。

关于 groups discussion 上的这两个上下文有一个很好的观点这可能是因为 Gorilla 的上下文被错误命名,因为它们都用于不同的目的 - “App Engine 存储凭据以发出 RPC 请求;Gorilla 只是请求全局变量的容器。”

关于google-app-engine - Google App Engine 上下文。上下文与 gorilla 上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34976534/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com