
CureWord.top 鸡汤重构笔记
前言
最近收到朋友的催更,花了一周左右把 go-Cureword 的进度给赶完了
这篇博客用来记录我这期间踩过的所有坑,解决方法,以及心得
因为是工程写完之后来统计的 可能会有特别多的疏漏
鸡汤站地址:
工程开源地址:
前端: github.com/…/cureword.top 后端: github.com/…/go-cureword
坑🕳
-
Vue.js – axios 通过POST方式传输的json是Request Payload
请求头是
Content-Type: application/json的话,Golang 这边直接读 body 就能解析出来 -
生成API接口文档
最开始使用的是APIPost/Postman的生成方法,但是这两个软件生成出来的文档夹带太多私货(指广告),后来就使用了apidoc进行生成
APIDOC 可以读取源码的注释 进行生成api文档
-
Go net/http 处理静态文件
生成出来的api文档是一个文件夹,带静态文件,需要一并搭载出来
解决方法:
http.Handle("/", http.FileServer(http.Dir("/xxx/")))(这个方法真的是简单粗暴方便)
-
Go []byte 与 json 互相转换方法(搜索次数多)
b, _ := json.Marshal(m)//将json对象序列化为byte[] json.Unmarshal(b,&ki)//将序列化的byte[]重写反序列化为对象。 -
Gorm 指定struct对应的表名
type Article struct { Id uint32 `json:"id"` Title string `json:"title"` Content string `json:"content"` } func (Article) TableName() string { //实现TableName接口,以达到结构体和表对应,如果不实现该接口,并未设置全局表名禁用复数,gorm会自动扩展表名为articles(结构体+s) return "it_article" }不想给每个结构体都实现 TableName 的话,也可以在查询时用
db.Table("表名")直接指定,见 GORM 按结构体建指定名字的表 -
axios 相应后执行的函数无法使用element-ui的函数(this指向有变化)
原使用方法
axios .get("host") .then(function(res){}) .catch(...)现使用方法
axios .get("host") .then((res)=>{}) .catch(...)原因:
function(res){this.xxx}和(res)=>{this.xxx}中的this的指向是不同的,箭头函数并不简单是匿名函数的简写。在JS中,箭头函数并不是简单的function(){}匿名函数的简写语法糖,实际上,箭头函数和匿名函数有个明显的区别:箭头函数内部的this是词法作用域,在编写函数时就已经确定了。而匿名函数的this指向运行时实际调用该方法的对象,无法在编写函数时确定。
-
vue router 刷新后无法定位路由
将
router/index.js中的mode从history改为hash即可
Wakatime
前往Wakatime查看 go-Cureword 编写时所需的时长
我才发现这玩意快写了30个小时了…
API
获取API请前往爱发电进行充电,充电一次获取1个月API使用权限
项目已归档,鸡汤站和 API 都不再提供服务,代码还在上面两个仓库里
评论
评论加载中…