V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  jeffmingup  ›  全部回复第 1 页 / 共 1 页
回复总数  10
一直想要提升自己的英语能力,但是太懒了。非常看好这个软件,就是刚开始用的时候服务太不稳定了,让我多试试,谢谢大佬
bWluZzE5NjA1ODgyNTFAZ21haWwuY29t
协程优势在上下文切换和初始化占用内存少上,适用于 io 密集场景( web ),可以开很多协程。cpu 密集场景上,一个协程对比一个线程就没啥优势了。
142 天前
回复了 littlemis 创建的主题 生活 请问如何个人测试真实家里的甲醛浓度?
同样之前买的京东服务 CMA 资质的,两个点不到 500 ,体验挺好。听京东检测的小哥说自测盒也可以,但是肉眼不好区分,可以放在柜子里之类的封闭空间排查
207 天前
回复了 94nb 创建的主题 生活 明天和意外,你永远不知道哪个会先来
刚经历一场误诊,折腾了好几天,很能理解楼主的心情,希望楼主也虚惊一场,加油
晦气
312 天前
回复了 everfly75 创建的主题 分享创造 50 岁开发者的 AI 创业历程与收获
[email protected] 已注册求会员体验,谢谢。
要不设置值用 gin 的 c.Set("Email", "123") 取值可以直接用 db.Statement.Context.("Email").(string) 因为 gin 的 context 是自己的实现的,gin 的 ContextWithFallback 参数默认 false ,会直接返回 nil
package main

import (
"log"

"github.com/gin-gonic/gin"
"gorm.io/driver/mysql"
"gorm.io/gorm"
)

type User struct {
gorm.Model
Name string
Email string
}

func (u *User) BeforeCreate(tx *gorm.DB) (err error) {
if u.Email == "" {
ctx := tx.Statement.Context
if v, ok := ctx.Value("Email").(string); ok {
u.Email = v
}
}
return
}

func main() {
// 初始化 Gin 路由器实例
r := gin.Default()

// 初始化 Gorm 数据库连接
dsn := "root:root@tcp(127.0.0.1:3306)/gorm-example?charset=utf8mb4&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
panic("failed to connect database")
}

// 自动迁移模型结构体到数据库表
db.AutoMigrate(&User{})

// 创建处理程序函数
createUser := func(c *gin.Context) {
var user User
if err := c.ShouldBindJSON(&user); err != nil {
c.JSON(400, gin.H{"error": err.Error()})
return
}
log.Println("Email:", c.GetString("Email"))
db.WithContext(c).Create(&user)
c.JSON(200, user)
}

// 自定义中间件,设置 example 变量为 123
r.Use(func(c *gin.Context) {
c.Set("Email", "[email protected]")
c.Next()
})
// 在路由器实例中注册处理程序函数

r.POST("/users", createUser)

// 启动 Gin 服务器,监听 HTTP 请求
r.Run(":8080")
}
我试了一下,这样可以,你对照着看下呢
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2508 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 22ms · UTC 02:31 · PVG 10:31 · LAX 19:31 · JFK 22:31
Developed with CodeLauncher
♥ Do have faith in what you're doing.