golang
已收录文章:13993篇
-
通过中间件统一处理GolangWeb服务中的panic和业务错误,可提升稳定性和可维护性。利用defer+recover捕获异常,防止程序崩溃,并结合自定义错误响应结构体统一返回格式,便于前端解析。在net/http中使用装饰器模式包装Handler,在Gin等框架中则利用其内置中间件机制,如c.Next()后读取c.Errors进行错误响应。核心是通过中间件链集中处理各类错误,避免重复代码,确保服务健壮。168 收藏
-
官方地址:gin-gonic.com/docs/ 安装与简单测试 下载并安装Gin包,并导入引用 $ go get -u github.com/gin-gonic/gin //将gin引入到代码中 import "github.com/gin-gonic/gin" //可选。如果使用诸如 http.StatusOK 之类的常量167 收藏
-
背景 在某些场景下,我们可能会大量的使用字节数组,比如IO操作、编解码,如果不进行优化,大量的申请和释放字节数组会造成一定的性能损耗,因此有必要复用字节数组。 为何需要字节池167 收藏
-
上传文件 package main import ( "fmt" "github.com/gin-gonic/gin" ) func main() { router := gin.Default() // 给表单限制上传大小 (默认 32 MiB) // router.MaxMultipartMemory = 8 << 20 // 8 MiB router.POST("/upload", func(c *gin.Cont167 收藏
-
开始本文之前,我们看一段Go连接数据库的代码: //openDB()函数返回一个sql.DB连接池。 func openDB() (*sql.DB, error) { //使用sql.Open()创建一个空连接池 db, err := sql.Open("postgres", "postgres://username:pas167 收藏
-
什么是死锁,在Go的协程里面死锁通常就是永久阻塞了,你拿着我的东西,要我先给你然后再给我,我拿着你的东西又让你先给我,不然就不给你。我俩都这么想,这事就解决不了了。 第一种情167 收藏