自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

furfur-jiang的博客

公众号:程序江

  • 博客(480)
  • 收藏
  • 关注

原创 跨域案例go gf ,请求代理,前端请求后端A转发给多个后端B

该项目使用案例:https://hzz.cool/blog/implementation-of-simple-http-and-https-reverse-proxy-by-golang。对所有请求都拦截,包括options,这样需要自己处理options请求,options请求是为了协商请求头,所以需要返回成功以及必要信息方便后期请求携带。请求允许的加上x-proxy,注意option请求是拿不到具体的值。跨域案例go gf ,请求代理,前端请求后端A转后端B。

2023-08-25 11:44:13 1921

原创 Go指针取址问题:循环后每次都拿到相同内容

前者地址一直没变,但后者地址会变,因为我们把值拷贝一份之后又重新取址。也就是把地址给新变量,还是会把一样的地址赋予到map里面。如果改成这样是没用的。每次都要赋值新变量即。

2023-08-04 15:08:06 1215

原创 携带时间戳主动写入数据到prometheus service(可乱序、go)

这个测试用例里面,删掉srv初始化的部分,这个是模拟一个客户端,直接写入自己的普罗米修斯测试的客户端路径,/api/v1/write普罗米修斯是写入的路径。这个错误通常是由于 Prometheus 写入数据时样本的时间戳顺序不正确导致的。Prometheus 要求样本的时间戳必须按照递增的顺序进行写入。普罗米修斯对写操作有限制,所以要按时间顺序写入。使用到的github公开项目。拉下来装依赖,然后使用。

2023-07-18 17:09:42 2604

原创 解决element无法溢出问题,table,card,tabs等

内使用/deep/,如果你已经style用于scss或其他,可以额外再写一个style,内只写/deep/,scoped是限制在当前作用域,如果不需要可以去掉。解决element无法溢出问题。

2023-06-27 20:10:29 2510

原创 《代码整洁之道》阅读笔记

代码整洁之道

2023-05-22 20:05:20 1452 1

原创 策略模式+单例模式(go)

不够满意,go的初始化操作只有init,整个包的初始化都要统一放在一个函数,没有像python的__init__这样一个类自己有一个自执行函数,这样修改go的init函数貌似也破坏了开闭原则,所以只想到放在main。方案2:使用策略模式,抽象一层奖励策略接口,具体的奖励类型作为具体的策略实现这一奖励策略接口,增加一个环境类(内免除不了分支判断),供给奖励服务调用。环境类新增Map注册表,注册所有具体策略,传入奖励类型,就可以通过map匹配到具体策略。Strategy策略:定义所有支持的算法的公共接口。

2023-05-19 20:51:55 1430

原创 Go程序设计语言翻译问题(goroutine)

但是,由于 wg.Wait() 的计数器一直没有被归零(因为wg.Add(1)执行了),阻塞,worker goroutine 无法向 sizes 通道发送消息,因此 for f := range filenames 循环会一直等待下去,从而导致程序陷入死锁状态。如果放在主goroutine循环后,因为如果没有go,sizes管道只能放入一个内容,而wg.Wait()会阻塞,导致无法执行到for size := range sizes(循环去除放入的管道内容),我个人不太喜欢这个简单的解释,

2023-05-16 19:18:31 1213

原创 Go并发情况下debug调试无法进入所需调试goroutine,附带并发测试代码

在使用go语法的时候,由于并发情况,只能调试一个goroutine,但存在随机性,难指定找到你所需的线程直接切换即可跳转。没有找到同时调试多个的办法,理论上是不行的,不然就不叫并发了。特殊情况:此线程监控某事件,执行一半首先断点打到用go修饰的函数,在go修饰的函数里面打个断点执行debug的时候,在到了go修饰函数的时候使用resume program直接进入修饰函数里面(step into 进不去,run to cursor也可以,鼠标放在所需位置即可)

2023-05-12 12:04:53 2103

原创 element-plus:el-tree-select加了check-strictly、check-on-click-node后无法点击复选框,只能点击文字才能选择

element-plus:el-tree-select加了check-strictly、check-on-click-node后无法点击复选框,只能点击文字才能选择。应该是bug,排除后发现el-form下就会导致这样的情况,所以要自己在form外面进行处理。测试版本:element-plus2.2.2, vue3.2.31。

2023-02-22 10:30:08 2311 1

原创 修改vscode默认node版本

nvm alias default 11.2.0 # 输入你要的版本。ctrl+shift+p 输入settings.json。

2023-02-09 16:57:35 4690

原创 虚拟机器ping外部地址不通过问题 ping: baidu.com: 未知的名称或服务

对比网卡ip地址,前三组数字是否一致,因为子网掩码都是255.255.255.0情况下,前三个数字都应该一致。修改IPADDR,使得与GATEWAY前三位保持一致(没有在文件内看到IPADDR参见上面的链接)重启网卡systemctl restart network。但是如果你还不行,那请看是否存在下面的问题。按照正常情况应该就可以ping通了。查看当前虚拟机的ip地址。恰巧我是不一致导致的失败。使用:CentOS7。

2022-09-22 20:17:55 3241

原创 Error: Protobuf syntax version should be first thing in file

执行命令npxpbjs-tjson-module-wcommonjs-oproto.jsClass.proto。protobuf报错。降版本为6.11后解决。

2022-07-20 17:35:00 1186

原创 antv X6基于vue3+Ts实现线和节点的tooltip

antv X6基于vue3+Ts实现线和节点的tooltip

2022-07-19 17:02:34 5305 2

原创 主子仓库都修改,如何进行同步?

主仓库切换,子仓库不变。这个概念非常重要,很多人不理解这个不变是指什么?使用此命令后,会去远程重新同步dev分支下的子仓库链接也就是dev分支的子仓库a版本id变成222,本地与远程一致难点:dev的子仓库和master的子仓库版本不同,直接合并会冲突。利用本地与远程的不一样性,可以进行不回滚修改。前期提要:正常开发应当至少有dev分支和master分支,你应当在dev分支进行开发,然后合并到master具体操作:首先在dev:进入子仓库目录提交你子仓库,所有更新到dev分支,即add/commit/p

2022-07-13 16:11:48 1549

原创 macbook:vscode 插件Code Runner报错:/bin/sh: node: command not found

macbook:vscode 插件Code Runner报错:/bin/sh: node: command not found

2022-06-22 17:34:09 3915 1

原创 echarts配置tooltip防止被截断

参考自官网:https://echarts.apache.org/zh/option.html#tooltip.confine效果超出canvas图框甚至超出页面底部tooltip: { extraCssText: 'z-index: 999;', enterable:true,//鼠标可进入,防止滑动屏幕时不出现弹窗 confine: true,//不限制在图里 trigger: 'axis', a

2022-05-05 17:46:55 1982 1

原创 子仓库代码同步问题整理

dev分支:修改子主仓库更新到远程修改主仓库保留的该子仓库链接# 子仓库下提交代码git add .git commit -m "xxx"git pushcd .. #退到主仓库目录,至少到app目录下git status# 确保当前分支为dev分支,两种情况讨论# 是git add xxx #添加子仓库git commit -m "xxx"git push# 否 (以后注意都应该先处于dev分支再进行开发)git checkout devgit submodu

2022-03-28 17:13:47 1540

原创 element表单组件label的自定义内容:插槽

部分代码<el-form-item size="mini" label="折扣" prop="discount"> <!-- template插槽插入,就是default插入即可 --> <template> <el-tooltip effect="dark" content="如果折扣等于6.5,表示美元汇率!" placement="right" &g.

2022-03-23 15:09:12 5298

原创 解决element的codepen在线测试报错:Vue is not defined

vue出现问题,没有超过导入换个cdn,下面版本2.5.16版本,可以自己招别的版本- <script src="//unpkg.com/vue/dist/vue.js"></script>+ <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>解决问题...

2022-03-23 10:23:33 2677

原创 vue寻找任意组件实例(iview源码)

iview/utils源码地址findComponentUpward由⼀个组件,向上找到最近的指定组件;findComponentsUpward由⼀个组件,向上找到所有的指定组件;findComponentDownward由⼀个组件,向下找到最近的指定组件;findComponentsDownward由⼀个组件,向下找到所有指定的组件;findBrothersComponents由⼀个组件,找到指定组件的兄弟组件// Find components upwardfunction fi

2022-03-15 17:02:17 2564

原创 Error: Branch is required. Notice: Deployment failed

问题:Error: Branch is required. Notice: Deployment failed! ❌遇到场景:直接使用阮一峰的.github/workflows案例遇到原因:可能版本旧解决:复制原作者的模板:https://github.com/JamesIves/github-pages-deploy-actionname: Build and Deployon: [push]jobs: build-and-deploy: concurrency: ci-$

2022-03-10 16:07:24 1028

原创 合并多个嵌套对象算法

合并前后效果:控制台不够直观,我放到浏览器去看<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-sca

2022-03-01 17:24:35 1045

原创 git stash 临时存代码,清空工作区

git stashgit stash会把所有未提交的修改(包括暂存的和非暂存的)都保存起来,用于后续恢复当前工作目录。再用git status查看有无遗漏注意若是新建的文件,就还会在工作区,所以在git stash之前要执行git add .ps:若已经执行git stash,可以先执行git stash pop弹出,add后再stashgit stash pop取出之前存的代码更详细:git-stash用法小结- Tocy - 博客园...

2022-02-25 15:05:19 1389

原创 js 赋值语句有返回值,就是等号右边的值(最终结果)

var name = "The Window";var object = { name : "My Object", getName: function(){ return this.name; }};console.log(object.getName()) //My Objectconsole.log((object.getName = object.getName)());//The Window题目参考自:https://blog.csdn.n

2022-02-24 15:33:16 1095

原创 This repository requires using pnpm as the package manager for scripts to work properly.

This repository requires using pnpm as the package manager for scripts to work properly.这个存储库需要使用pnpm作为脚本的包管理器才能正常工作。场景:vue3.2.31遇到解决:下载pnpm控制台执行Invoke-WebRequest ‘https://get.pnpm.io/v6.16.js’ -UseBasicParsing -o pnpm.js; node pnpm.js add --global

2022-02-15 17:30:35 2357

原创 jwt鉴权(react express jsonwebtoken)

此文记录jwt鉴权(react express jsonwebtoken)思路流程整个项目可以在https://github.com/furfur-jiang/DevConnector处查看,欢迎startjwt鉴权(react express jsonwebtoken)思路流程后端四步1. 配置一个随机内容,全局使用2. 登录接口,返回token3. 后端添加鉴权中间件,解析后返回解码后的内容,便于后续中间件使用4. 需要权限的接口,加上auth中间件即可前端五步1. 前端登录后,存储token、用户

2022-02-14 16:47:41 1126

原创 基于react express mongodb技术开发的开发人员社区项目

DevConnector开发人员社区,基于react express mongodb技术github地址:https://github.com/furfur-jiang/DevConnector欢迎start基本功能 开发者总览(查看简介需要先登录) 开发者个人信息:链接获取github仓库 简介/经历/教育 增删改查 社区留言,回复留言 登录/注册/退出快速启动npm installnpm run dev服务端在5000,客户端3000预览地址 : http://local

2022-02-14 15:48:26 470

原创 ‘withRouter‘ is not exported from ‘react-router-dom (V5=>V6)

问题:‘withRouter’ is not exported from 'react-router-dom原因:“react-router-dom”: “^6.2.1” 版本升级目的:实现命令式跳转,V5:history.push(‘xxxx’)解决:用钩子写withRouter函数,utils/withRouter.jsimport { useLocation, useNavigate, useParams} from "react-router-dom";export

2022-02-10 17:59:02 2998

原创 如何实现浏览器内多个标签页之间的通信

方式1:调用localStorage在一个标签页里面使用 localStorage.setItem(key,value) 添加(修改、删除)内容;在另一个标签页里面监听 storage 事件。即可得到 localstorge 存储的值,实现不同标签页之间的通信缺点:必须两个tab都打开页面一:<input id="name" /> <input type="button" id="btn" value="提交" /> <script type="te

2022-01-27 10:26:12 1380

转载 Web语义化(HTML5语义化标签)

转载文章:https://www.cnblogs.com/weixiao-he/p/8630084.html做了部分补充什么是Web语义化Web语义化是指使用恰当语义的html标签、class类名等内容,让页面具有良好的结构与含义,从而让人和机器都能快速理解网页内容。包含了html标签语义化,css命名语义化,URL语义化。语义化的web页面一方面可以让机器在更少的人类干预情况下收集并研究网页的信息,从而可以读懂网页的内容,然后将收集汇总的信息进行分析,结果为人类所用;另一方面它可以让开发人员读懂结

2022-01-26 17:52:26 496

原创 扁平处理后的路由path与原路由进行匹配,得到选中的路由

扁平处理后的路由path与原路由进行匹配,得到选中的路由(结合树形控件的叶子)//扁平处理后的路由数组let res = ['1<1.1<1.1.1', '2<2.1<2.1.1', '2<2.2', '3<3.1'] //原路由let arr = [ { id: '1', children: [ { id: '1<1.1', children: [{ id: '1<1.1<1.1.

2022-01-19 17:07:24 550

原创 扁平化路由中的children

两种效果:只取叶子全部都要思路:1 判断有子节点就递归,2传递res接收结果,3 把父path一层层传下去,使用args接收不定参数let arr = [ { path: '1', children: [ { path: '/1.1', children: [{ path: '/1.1.1' }, { path: '/1.1.2 ' }] }, { path: '/1.2 ' }, ], }, { path: '2',

2022-01-17 16:36:03 849

原创 vue hash 编程式路由 打开新页面 query传参

1.定义函数内的跳转方式此处article为跳转的路径,id为传入参数123跳转的新页面路径:http://localhost:8080/#/article?id=123let routerData = this.$router.resolve({ path: `/article`, query: {id:123} }); window.open(routerData.href, '_blank')不要使用params,即/article${id},会导致后面的路径拼接到id之后。

2022-01-12 18:23:29 887

原创 submodule 简单理解,切换仓库子仓库同步问题

git submodule update根据主仓库远程存储的commit同步本地,注意不是子仓库的最新,而是保留到主仓库的commitgit submodule foreach git pull origin dev将子仓库dev分支拉至最新,最好在此之前执行git submodule update ,否则会因合并冲突并生成新的commit,此commit会因为子仓库不存在而404git checkout dev主仓库切换分支,子仓库的内容保持不变,不会随着主仓库切换分支而变化为了切换时候同步

2022-01-12 11:06:12 1261

原创 vue 评论区回复无限嵌套实现代码

预览:介绍:输入内容,点击add comment即可添加一条新评论点击[-]可以收起该评论下的回复点击reply可以进行回复体验地址:(若访问失败则为下线请无视)http://121.41.42.236:8080/dist/github仓库地址:https://github.com/furfur-jiang/comments-section欢迎start...

2022-01-09 12:59:45 1067

原创 解决:github每次push都要输入账号密码

git config --global credential.helper store另一个常见报错:使用git提交代码到github时报错:Support for password authentication was removed on August 13, 2021.需要改成token来代替密码创建token的方法参照github的官方文档https://docs.github.com/en/github/authenticating-to-github/keeping-your-acco

2022-01-09 00:30:23 908

原创 使用AbortController接口终止已经发送的请求(项目源码实例)

测试AbortController功能:用于取消已经发送的请求。这是一个实验中的功能AbortController接口表示一个控制器对象,可以根据需要终止一个或多个Web请求。AbortController():AbortController()构造函数创建一个新的 AbortController 对象实例signal:signal 属性返回一个 AbortSignal 对象实例,它可以用来 with/about 一个Web(网络)请求abort():终止一个尚未完成的Web(网络)请求,它能够

2022-01-04 17:45:54 1279

原创 报错:800A03EA Microsft JScript编译错误

报错如上解决:文件名不能为node.js

2022-01-04 16:39:06 7784 6

原创 数组去重,对象数组根据属性去重

let arr1 = [1, 2, 3, 1, 2, 4]//1 set方法let set = new Set(arr1)console.log([...set])//2 map方法let map = new Map()for (let i = 0; i < arr1.length; i++){ map.set(arr1[i],true)//重复的直接覆盖}let res2 = []for (let num of map.keys()) { res2.push(num)

2022-01-04 15:54:36 482

原创 改善echarts的label重叠问题

echarts有示例:https://echarts.apache.org/examples/zh/editor.html?c=pie-labelLine-adjust通过labelLayout方法供echarts调用注意echarts版本4.1.0不会调用该方法,版本修改为5.2.2后成功vue-echarts为6.0.0效果:

2021-12-15 12:01:03 3188

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除