首页
关于
Search
1
笔记测试
278 阅读
2
PostgreSql使用Truncate清空数据表
248 阅读
3
GO语言及gin框架中踩坑总结
245 阅读
4
HashMap和Hashtable之间的区别
222 阅读
5
Docker——具名挂载和匿名挂载
209 阅读
默认分类
Java
Vue
SQL
Linux
Python
Golang
Search
Miku
累计撰写
14
篇文章
累计收到
0
条评论
首页
栏目
默认分类
Java
Vue
SQL
Linux
Python
Golang
页面
关于
搜索到
1
篇与
Golang
的结果
2021-11-22
GO语言及gin框架中踩坑总结
关于前后端传参问题对于前端传的参数,应创建对应的结构体进行解析,不建议直接使用gorm所对应的结构体router.go为gin框架中路由配置文件,一般在url路径中传入id为path传参方式,也可使用query方式(id=xx)进行参数的传递使用binding字段配合c.bind可进行传入参数的校验,但由于golang中bool的默认值为false,gorm无法进行存储,所以bool类型的值最好不要加binding关于常量的定义代码中尽量使用const在代码的开头进行常量的定义,避免使用魔法值,最好使用注释标明常量的含义关于批量删除批量删除一般采用SQL语句的in来操作,通过对传入的id进行处理后,可利用middleware.DB.Model(&model.ReportTask{}).Where("id in (?)", ids).Find(&m)语句进行批量删除关于定时任务项目中的定时任务实现主要依赖于Linux系统中的Cron表达式,通过chronos组件来实现Cron表达式的生成与调度定时任务生成及运行原理前端传入定时任务相关信息,包括定时任务执行间隔,开始执行时间等参数向pg中插入定时任务记录的同时,调用chronos的接口进行定时任务的创建当定时任务到达预定执行时间时,chronos会根据pg中存入的url地址调用对应模块暴露的exec接口,进行任务的执行关于gorm的使用使用gorm对数据库表进行基本CRUD操作时,需注意顺序问题,例如middleware.DB.Where("id = (?)", task.ID).Delete(&m)中delete操作需要在where条件之后,否则where条件不会生效关于go语法p, err := paramsDealWith(c) if err != nil { errno.Abort(errno.ErrBind, err, c) return }if p, err := paramsDealWith(c); err != nil { errno.Abort(errno.ErrBind, err, c) return }如上图所示,Go语言中可以将图1中赋值与判断合为一个整体,从而简化语法,提升代码可读性
2021年11月22日
245 阅读
0 评论
0 点赞