postman秒传填入一个不存在的filehash时我这里会报错
来源:5-6 编码实战:实现秒传功能接口+小结

三生三途
2019-12-18
看了一下源码才知道db/file.go文件的GetFileMeta修改过了,但是调用QueryRow方法
err == sql.ErrNoRows时应该return &tfile, nil才对
不然meta/filemeta.go的GetFileMetaDB方法会报错,会拿到一个nil去赋值FileMeta结构体。。。
不明白老师的代码为什么能跑通,我看了半天也没看明白,
除非修改 db/file.go -> GetFileMeta-> err==sql.ErrNoRows -> return &tfile, nil
写回答
2回答
-
xiaomo
2019-12-22
目前meta/filemeta.go代码已经更新为:
func GetFileMetaDB(fileSha1 string) (FileMeta, error) { tfile, err := mydb.GetFileMeta(fileSha1) if err != nil || tfile == nil { // 增加tfile为nil的判断 return FileMeta{}, err } fmeta := FileMeta{ FileSha1: tfile.FileHash, FileName: tfile.FileName.String, FileSize: tfile.FileSize.Int64, Location: tfile.FileAddr.String, } return fmeta, nil }
如还有问题,请帮忙指正哦~~
00 -
xiaomo
2019-12-19
同学你好,感谢提bug,代码的确有问题,稍后将会把相关的几个分支代码更新一下。
00
相似问题