Gin_bind_json_return_eof

在一次开发中,通过中间件访问请求中的post参数,于是使用 ioutil.ReadAll 来读取body中的内容并做相应的验证,代码如下: var pj map[string]interface{} body := c.Request.Body data, _ := ioutil.ReadAll(body) 一开始一切都挺美好,但等到测试的时候发现接口中调用 BindJSON(项目使用的框架是 gin) 返回错误,错误信息如下: bind multipart: NextPart: EOF 经过一番排查发现是因为ioutil.ReadAll() 方法会将,会在你读取之后,就没有了内容,既然知道了原因,解决方法也随之出现,只需要在获取之后,从新将 body 的内容写入,代码如下: c.Request.Body = ioutil.NopCloser(bytes.NewBuffer(data)) 至此问题得到了解决 参考链接 Golang: Read from an io.ReadWriter without losing its content

October 23, 2019 · 1 min · 云溪

exec.Command 返回 “exit status 1” 获取详细错误信息

cmd := exec.Command("find", "/", "-maxdepth", "1", "-exec", "wc", "-c", "{}", "\\") output, err := cmd.CombinedOutput() if err != nil { fmt.Println(fmt.Sprint(err) + ": " + string(output)) return } fmt.Println(string(output))

July 20, 2019 · 1 min · 云溪

gorm常见问题

sql: Scan error on column index 5, name “created_at”: unsupported Scan, storing driver.Value type []uint8 into type *time.Time DATETIME转换问题 执行Rows.Scan()时报告错误 原因是在调用sql.Open()时没有将parseTime设置为True。加入parseTime即可修复问题: db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/dbname?parseTime=true") invalid memory address or nil pointer dereference on simple learning example. Maybe a bug with latest version 代码实例 package main import ( "net/http" "strconv" "github.com/gin-gonic/gin" "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/postgres" ) var db *gorm.DB func init() { var err error db, err := gorm.Open("postgres", "host=localhost user=postgres dbname=postgres sslmode=disable password=pass") if err !...

December 22, 2018 · 1 min · 云溪

Sqlite3 stdlib.h: No such file or directory

sqlite3/backup.go:14:20: fatal error: stdlib.h: No such file or directory 错误提示 # github.com/mattn/go-sqlite3 ../../../.go/src/github.com/mattn/go-sqlite3/backup.go:14:20: fatal error: stdlib.h: No such file or directory compilation terminated. 解决方法 sudo apt-get install g++ 参考链接 mattn/go-sqlite3/issues

September 23, 2018 · 1 min · 云溪

xorm将表生成实体

xorm 工具 xorm 是一组数据库操作命令行工具。 源码安装 go get github.com/go-xorm/cmd/xorm 使用 使用帮助 查看帮助命令: xorm help reverse 帮助详情 usage: xorm reverse [-s] driverName datasourceName tmplPath [generatedPath] [tableFilterReg] according database's tables and columns to generate codes for Go, C++ and etc. -s Generated one go file for every table driverName Database driver name, now supported four: mysql mymysql sqlite3 postgres datasourceName Database connection uri, for detail infomation please visit driver's project page tmplPath Template dir for generated....

September 16, 2018 · 1 min · 云溪