Go问答技术文章
-
围绕 Go database/sql Tx 讲清异常路径统一回滚的写法:用 defer 兜底、事务内统一使用 Tx、正确处理 Commit 错误,并给出资源释放检查清单。448 收藏 -
用 Go database/sql 设计业务事务时,把 BeginTx、Commit 和 Rollback 放在用例外层,让仓储函数只接收 Tx 并返回错误,避免事务职责分散。215 收藏 -
Golang · Go问答 | 1个月前 | database/sql · Go database/sql Rows Go Rows Scan字段顺序 Go SQL查询列顺序 Go rows.Columns排查 Go rows.Err错误处理
Go database/sql 使用 Rows 时,Scan 的目标参数必须按 SELECT 返回列的顺序排列。本文从列数、列名、类型和 NULL 四个方向排查错位,并补上 Rows 的 Close 与 Err 收尾检查。359 收藏 -
讲清 Go database/sql Rows 读取 SQL NULL 的正确方式:用 NullString、NullInt64 或 sql.Null[T] 接住空值,结合 Valid 判断、Rows.Err 和 Close 保留完整数据语义。254 收藏 -
Go 使用 database/sql 查询多行数据时,Rows 既是遍历结果的对象,也是连接释放边界的一部分。本文用一套可复用的收尾写法覆盖正常读取、Scan 失败、提前返回、上下文取消和连接池排查。294 收藏 -
Golang · Go问答 | 1个月前 | 错误处理 · 文件上传 · Go问答 · Go multipart.Reader 临时上传文件 上传失败清理 multipart.Part Form.RemoveAll
Go multipart.Reader 流式上传要把临时文件当作未提交资源管理:单个 Part 写入失败立即删除当前文件,请求后续部件失败则回滚已落盘清单;使用 ReadForm 时改用 Form.RemoveAll。387 收藏 -
使用Go标准库mime/multipart解析上传请求时,先从Content-Type取得boundary,再用multipart.Reader按部件读取Header、字段名和文件名,并正确区分io.EOF与解析错误。267 收藏 -
Golang · Go问答 | 1个月前 | net/http · Go问答 · http.MaxBytesReader io.LimitReader Go multipart.Reader Go multipart上传大小限制 multipart.Reader超限处理
Go multipart.Reader本身没有直接设置整包字节上限的参数。本文区分请求体总大小、单个Part大小和ReadForm内存边界,给出MaxBytesReader与LimitReader的组合写法及超限处理清单。262 收藏 -
围绕 Go http.CookieJar 的 Secure 属性,说明 HTTP 测试为何取不到安全 Cookie,并给出 HTTP 与 TLS 测试入口、Jar.Cookies(u) 和四项排查清单。493 收藏 -
讲清 Go http.CookieJar 中 Domain 为空与显式 Domain 的区别,结合 HostOnly、Path、Secure 和 PublicSuffixList 给出 Cookie 投递范围排查方法。289 收藏 -
讲清 Go http.Client 如何借助 CookieJar 在重定向中按域名、路径和安全属性保留正确 Cookie,并给出公共后缀列表、CheckRedirect 与排查清单。206 收藏 -
Go HTTP 超时不一定发生在服务端处理阶段,本文用错误链、Client/Transport 参数和 httptrace 阶段日志,定位 DNS、建连、TLS、响应头或响应体读取层。124 收藏 -
区分 Go HTTP 请求超时与 Transport 空闲连接回收,给出连接池参数、共享 Transport 和主动清理的排查方法。120 收藏 -
Golang · Go问答 | 1个月前 | net/http · Go问答 · ReadTimeout ReadHeaderTimeout Go HTTP 超时 http.Server 超时配置 Go 请求头超时
Go 的 HeaderTimeout 实际对应 http.Server.ReadHeaderTimeout。本文用一组 http.Server 配置说明如何把请求头、完整请求读取、响应写出和 keep-alive 空闲预算分开设置,并指出两个读取超时不相加的边界。266 收藏 -
Go 更新接口中,缺失字段、JSON null 和空字符串不是同一种含义。本文用 json.Decoder 与 json.RawMessage 保留字段存在性,再映射为可校验的三态结构,避免 PATCH 请求误覆盖数据。293 收藏