所以,我是一个新的编程和去,所以原谅我,如果我做错了什么。我正在用go构建restapi。我使用gorm来访问postresqldb,并且我想使用redis来存储jsonweb密钥。go context是我还不了解的东西,但我需要它来设置redis中的内容,根据以下文档:
Set(ctx Context, key string, value interface{}, expiration Duration) *StatusCmd
正如我现在看到的,我可以做两件事来访问redis,go context和处理程序中的db,而不需要给它3个参数。将下面这样的结构传递给处理程序
type env struct {
ctx *context.Context
db *gorm.DB
rdb *redis.Client
}
handler.ListItems(env{ctx: context.TODO(), db: gorm.DB, redis.Client})
或者将变量存储在go上下文中
ctx := context.WithValue(context.Background(), "db", gorm.DB)
ctx = context.WithValue(ctx, "rdb", redis.Client)
handler.ListItems(ctx)
所以我的问题是:在这种情况下,什么是最佳实践,为什么?
暂无答案!
目前还没有任何答案,快来回答吧!