2021年9月9日 GET 请求也能传递 Body 数据 通常而言, GET 请求很少传递 Body 数据, 大多情况下都是放在 url 中, 例如 1 http://example.com/api?key1=value1&key2=value2 但是这样做, 可能由于 传递数据过多 导致 URL 过程而被拦截。 运营商会缓存 URL 地址以达到加速的效果, 而有些参数又不想被缓存。 等等 虽然, 可以使用 POST 请求代替 GET 请求, 在 Body 中传递数据, 但是这样做可能会破坏 RESTful 风格的 API 格……
阅读全文
2021年9月9日 golang 括号用法总结 1 2 3 4 5 6 7 8 var ( f unsafe.Pointer a io.ReadCloser = (*os.File)(f) // 只要是一个指针就可以 b io.Reader = a // a的方法集大于等于b,就可以做隐式的转换! c io.Closer = a // 同样 d io.Reader = c.(io.Reader) // 显式转换,c这个接口很明显方法集和io.Reader不同 // 但是万一传入c的对象拥有io.Reader接口呢?比如 ) 提问, 以上这些括号都是……
阅读全文
2021年9月7日 axios get 请求携带 json body 数据 在 http 标准协议中, GET 请求 本身是可以携带 Body 数据 。 至于 GET 请求携带的数据能不能被获取, 还是要看接受端 后端 是否处理。 在 gin-gonic/gin 框架中, GET 请求默认就不会处理 body 中的数据, 只能通过 query 表单数据传递。 然而不同的浏览器对于 URL 长度的限制也不同,一般是 1024 个字符, 1. 有些时候需要携带的数据可能超……
阅读全文
2021年9月7日 值对象与指针对象 假设有一个 map 对象 map[string]Person , 其中 Person 定义如下。 是一个 struct 1 2 3 type Person struct { Age int } 现在有一个需求, map 中的 Person 对象年龄为 0 , 则将其默认值设置为 18。 很显然, 由于 map[string]Person 中保存的是 值对象 ,因此通过任意方式获取的都是 值对象的副本 , 所有修改都是在副本上, 不能 修改真实值。 如果是 map[string]*Person 就很方便了。 *Person 是 指针……
阅读全文
2021年9月6日 GitlabCI 使用多个 Runner 执行特定 JOB 在 Gitlab CI 中,Runner 是 Job 的执行器, 也就是说 Job 的运行环境, 就是 Runner 的环境。 那么, 怎么将同一个 gitlab ci 中的 Job 运行在不同的 Runner 上呢? 例如, 根据 操作系统 区分, job1 运行在 windows 上, job2 运行在 linux 上, 诸如此类。 使用 TAG 指定 runner 其实很简单, gitlab ci 中, 可以通过指定 tags 来设定运行条件, 满足了 tag 才能被……
阅读全文
2021年9月6日 一篇文章告诉你 golang 环境变量的所有基础操作 原文链接: https://tangx.in/posts/2021/09/06/golang-os-env-operation/ golang 中的环境变量操作都在 os 包下面, 只有很少的几个方法, 而且字面意思也很明确。 所有环境变量操作对象都是 字符串string , 因此对于 int, bool 类型需要自己实现转换。 golang 程序执行的时候, 是在 linux 系统中 fork 的一种子进程中 golang程序 在 复制了开……
阅读全文
2021年9月2日 typora , 可以说一款为 github pages 网站量身定制的软件 配置初始目录 在 配置中 选择 General , 选择默认打开的目录。 配置图片路径 众所周知, Github Pages(Jekyll) 中, 文章需要放到 _post 下, 而资源应该另外创建目录, 如 assert 等。 这就造成了普通 markdown 编辑器插入图片的不方便。 解决方法如下: 使用图床, 彻底外部独立, 不存在相对路径的问题 放在 assert 下面, 但本……
阅读全文
2021年9月1日 Vue3 / React 静态网站项目容器化 - 实战案例 在前端容器化的时候, 有一个绕不开的问题: 容器返回的后端地址应该怎么设置。 静态编译到所有文件中, 肯定是不可取的, 总不能后端变更一个访问域名,前端都要重新构建一次镜像吧? 由于 js (typescript 编译后 ) 实际是运行在 用户的浏览器上, 所以也不能像后端一样读取环境变量。 所……
阅读全文
2021年9月1日 typescript 中使用 @ 路径别名 使用路径别名 @/some/path/index.ts 可以很简单的表示一个文件的绝对路径(其实是相对于 @ 的相对路径) 安装 @types/node 1 yarn add @types/node 配置 tsconfig.json , 一下是基于 vite2 项目配置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 { "compilerOptions": { // ... , "types": [ "node" ], // https://github.com/vitejs/vite/issues/279 "paths": { "@/*": [ "./src/*", ] } }, // ... } 就可以在 ts 文件中使用 @ 别名引入了。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17……
阅读全文
2021年8月31日 vue3 使用 vite2 初始化项目 vue3 + vite2 + typescript 配置 使用 vite2 创建项目 1 2 3 4 5 6 # 交换式 yarn create vite # 非交互式 yarn create vite project-name --template vue-ts 创建项目之后, cd project-name 进入项目, 是用 yarn 安装依赖, 使用 yarn dev 运行程序。 安装 less 支持 less 是 css 的一个超集。 yarn add less 安装之后, 可以在 CompName.vue 中使用 less 语法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 // CompName.vue <template> <div class="div1"> <h3>div1</h3> <div class="div2"> <h3>div2</h3> </div> </div> </template>……
阅读全文