自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

甘宇辉的博客

全栈开发修炼之道

  • 博客(48)
  • 资源 (1)
  • 收藏
  • 关注

原创 Nestjs 微服务实战 - 动态微服务创建链接

以上属于官网列出的例子,对于真正的微服务开发肯定是不够用的,因为服务并没有根据配置中心的配置进行动态变更倒入,这种情况下,假如某个服务很占用 CPU、内存导致荡机了,也无法进行动态扩展,只能去重启服务手动更改配置,而我需要的是完全动态,每个服务部署都独立部署出来,对于高CPU的服务进行动态扩展服务器,进行自动切换 ip 端口线路。服务治理包括(配置中心、服务发现、注册服务等等),常见的包括 Java 的 Nacos,这里不关注与服务治理,只说明,如何用 nest 网关,并且在网关层动态实现微服务注入。

2024-01-05 11:20:53 905 2

原创 NodeJS 实时收发 QQ 邮件

Nodejs 实时收发 QQ 邮件

2022-09-19 10:12:13 909 1

原创 centOs7 安装 mysql 记录

安装安装依赖# 下载shell> wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm# 安装 mysql 源shell> yum localinstall mysql57-community-release-el7-11.noarch.rpm用下面的命令检查 mysql 源是否安装成功shell> yum repolist enabled | grep "mysql.*

2020-09-21 15:10:13 222

原创 linux 搭建 nginx 1.18.0

1、下载nginxwget http://nginx.org/download/nginx-1.18.0.tar.gz2、解压nginx到安装目录tar -zxvf nginx-1.15.0.tar.gzcd nginx-1.15.0/3、编译安装nginx检测系统及生成相关中间文件: ./configure编译及生成最终二进制文件: make安装: make install此时默认 nginx 会安装到 /usr/local/nginx 目录下,二进制可执行文件在 /usr/lo

2020-09-21 00:01:00 775

原创 pip下载python库太慢 解决方案

更换国内镜像地址清华:https://pypi.tuna.tsinghua.edu.cn/simple/中科大:https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/阿里:https://mirrors.aliyun.com/pypi/simple/豆瓣:http://pypi.doubanio.com/simple/使用方式如:pip3 install 包名 -i https://pypi.tuna.tsinghua.edu.cn/s

2020-08-22 14:18:22 387

原创 C++ 源文件编译可执行文件

最近迷上了C++,虽然现代化开发工具很齐全,很多继承的 ide 能够直接一件打包桌面端应用程序,但是为了学习,还是记录一下第一步(预处理源文件):g++ -E main.cpp -o new.cpp第二步(C++ 转汇编程序):g++ -S new.cpp - o app.s第三步(汇编转二进制程序):g++ -c app.s -o app.o第四步(二进制转可执行文件):g++ app.o -o app.exe...

2020-08-20 23:27:33 441

原创 MacOs 下和 Linux之间互传文件/文件夹

用 mac 自带了 scp 命令下载文件夹(scp -r 账号@地址:路径 本地保存的路径):scp -r [email protected]:/www/wwwroot/ /Volumes/Resources/123回车后输入服务器密码,等待即可下载单个文件(scp 账号@地址:路径 本地保存的路径):scp [email protected]:/www/wwwroot/text.txt ...

2020-01-31 00:52:53 1946

原创 nestjs 使用微信扫码支付 notify_url 回调处理 xml

xml 是作为一种比较老的 数据传输手段,大部分都是传递 json 、form 、buffer的,现代框架也都是支持这三种数据格式的,都不会自带 xml 格式。在做微信扫码支付的时候,当支付成功了微信会给你发送 post 请求,这个时候处理请求就会发现 body = {} + query = {} + params = {},这个时候我的内心是崩溃的,啥参数也没有。查找了很多资料,都说参数就在...

2019-12-18 11:05:03 2004 1

原创 nodejs 之 egg 框架前后端分离生成 token

创建一个 egg 新项目,我这里创建的是 TypeScript 的模式npm init egg --type=tsnpm install创建完成并安装完初始化依赖文件后需要再次安装两个包1.egg-cors 跨域包2.egg-jwt token生成以及验证包npm install egg-cors egg-jwt --save安装完成后在根目录下的 config/plugin.t...

2019-06-12 21:51:09 4897 2

原创 Egg post 失败 { message: 'invalid csrf token' } 解决方案

服务端无法接受 post 请求,并且前台报错 403 ,服务端自动返回信息:message: 'invalid csrf token'很多人的解决方案是直接在 config.default.js 文件中加入以下代码:config.security: { csrf: { enable: false, }}以上方法确实可以解决此方案,但是不推荐,egg 框架内置了安全系...

2019-06-04 09:31:03 24512 5

原创 MacOS 安装 mongodb 以及配置自启动

使用 Homebrew 安装 MongoDBbrew install mongodb配置自动启动1.链接 plist 文件ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents目录 /usr/local/opt/mongodb/ 是一个链接,指向 /usr/local/Cellar/mongodb/x.y.z x....

2019-05-26 11:52:07 865

原创 初始化 Flutter 项目以及第一个 hello world 程序

进入桌面初始化一个项目cd desktopflutter create app至此项目初始化完毕,可以在桌面看到新建了一个app的文件夹,里面就是flutter的项目目录了。如下图:而我们编写代码的开发目录则在 lib 目录下,当我们打开目录下只有一个 main.dart 文件, 在 VScode 里面打开该项目,并且清空 main.dart 重新编写一个 hello worldm...

2019-05-21 22:53:35 1933

原创 Flutter 之原生 app 开发入门篇 ------- 环境搭建

Flutter 是谷歌公司开源的基于 Datr 语言开发的跨平台 App 开发框架,最近也是火的不行,所以决定踩一波坑。本篇以 Mac 为例1、打开 Appstore 下载 Xcode(自带ios模拟器)2、下载 android Studio3、下载 Flutter SDK4、配置用户环境变量打开终端进入用户目录cd ~编辑模式打开用户环境变量文件vim .bash_p...

2019-05-19 21:39:42 473

原创 NodeJS操作 Mongodb 并且对 Mongodb 类库进行封装

我的目录如下:第一步,安装 Node 依赖在当前目录下输入:npm install mongodb -S第二步,编写配置文件在 config 文件夹内的 index.js 内编写如下代码:module.exports = { // 地址 address:'192.168.0.105', // 端口 port:'27017', // 数据库 ...

2019-01-22 10:31:32 2684 2

原创 Python3 操作 MySQLS 数据库

1、首先安装需要用到的 MySQL 依赖包pip3 install mysqlclient连接整个 mysql 服务# 引入模块包import MySQLdb as mysql#创建一个连接connect = mysql.connect( # 地址 host = '127.0.0.1', # 端口 port = 3306, # 用户 ...

2019-01-06 14:40:40 162

原创 解决 MacOs 上 MySQL 无法插入中文

当发现无法输入中文字符的时候,一般是新安装的 mysql 没有配置编码服务。1、进入 /etc 目录cd /etc2、以管理员权限创建 my.cnf 文件sudo touch my.cnf3、以管理员的权限编辑 my.cnf 文件sudo vim my.cnf4、输入以下内容[mysqld]character-set-server=utf8[client]default...

2019-01-06 02:16:02 335

原创 centos / Linux 服务环境下安装 Redis 5.0.3

1、首先进入你要安装的目录cd /usr/local2、下载目前最新稳定版本 Redis 5.0.3wget http://download.redis.io/releases/redis-5.0.3.tar.gz3、解压到当前目录tar -xvzf redis-5.0.3.tar.gz4、删除压缩包rm redis-5.0.3.tar.gz5、进入解压出来的目录cd r...

2019-01-02 21:10:22 2838

原创 CentOS / Linux 永久开放某个指定的端口号

1、开启防火墙systemctl start firewalld2、开放指定端口,这里以 80 端口为例。firewall-cmd --zone=public --add-port=80/tcp --permanent3、重启防火墙firewall-cmd --reload4、查看当前所有 tcp 端口netstat -ntlp5、查看所有 80 端口使用情况netsta...

2019-01-02 20:36:47 708

原创 centos / Linux 服务环境下安装 Python3.7.2 和 pip3

Linux 服务器系统上一般都是和 MacOS 一样都是自带了一个 Python2 的开发环境,这里我要再次安装一个 Python3 的开发环境如以下步骤。首先,我的服务器是阿里云的 Linux,所以支持 wget 命令。第一步、查找 Python 的存储路径which python2第二步、进入到 python2 同级目录下安装 python3cd /usr/bin/第三步、找...

2018-12-31 18:19:40 2589 2

原创 redis 在 mac 下的安装与使用

redis 本质上是一个高性能的 Key,Value 数据库支持存储的类型相对更多;(String、list、set、hash)ps : 查询频率高,且查询的是相同的内容,就用 redis 做缓存;典型的非关系型数据库,不用写sql语句的数据库;(在高并发的时候对关系型数据库起到一个很好的补充作用)默认端口redis 的默认端口是 6379安装 redis官网下载,下载 stabl...

2018-12-30 13:37:43 390

原创 mac 安装配置 phantomjs

1.下载 phantomjshttp://phantomjs.org/download.html2.下载后将文件解压后放到自己定义的目录下3.终端输入vim .bash_profile4.添加语句( i 插入, esc 退出,:wq 保存关闭)export PATH=${PATH}:/Volumes/data/phantomjs/bin(/Applications/phanto...

2018-12-30 00:23:55 1168

原创 python 入门之 – 初识函数(二十四)

上面学完了 python 的基本数据类型和文件操作之后,今天学了一个新的知识点,函数,那么什么是函数呢?先来看一个例子:a = 2if a == 1: print('当前的 a 等于:' + str(a)) print('a 的值比 10 相差'+str(10-a))elif a == 1: print('当前的 a 等于:' + str(a)) print...

2018-12-08 17:32:42 137

原创 python 入门之 – 文件操作(二十三)

学习 python 文件操作之前,首先要知道我们一般在电脑图形化界面上是如何操作的:1、根据存放在电脑硬盘上的文件路径找到文件2、通过系统自带的软件或者第三方软件打开选择的文件3、进行阅读浏览或者增删改查等等…4、操作完成后需要关闭文件或者保存关闭文件(不然占用计算机运行内存)其实在 python 里面操作文件还是挺容易的,还记的当初学 NodeJS 的时候还要引入一个对应的模块才能进行...

2018-12-02 22:12:48 405

原创 python 入门之 – 三元运算(二十二)

三元运算 又称作 三目运算,是对条件判断语句的简写,因为我主要是做前端的,在 JavaScript 里面其实我已经写过无数遍三目表达式了,如:let a = 0;let b = 1;//正常 JavaScript 判断表达式if(a>b){ console.log('a 大于 b')}else{ console.log('a 小于 b')}//换成三目运算a>b?c...

2018-12-02 17:03:48 145

原创 python 入门之 – 字符编码及相应处理方法(二十一)

字符编码及操作方法今天来了解了解关于字符编码的一些知识,关于字符编码,其实我们生活当中所有的智能设备都有字符编码,并且每个国家都有自己的字符编码,记录着各个国家的文字信息,例如早期的一些网站项目都是用中国的 gbk 编码。每个国家的计算机编码只能识别自己国家的文字,如果非当前国家编码的文字在计算机文档中会以乱码显示,如早期 PHP 的织梦CMS 这种,当时这种类型的 CMS 开发出来的时候用的...

2018-12-02 14:41:41 226

原创 python 入门之 – 十六进制运算(二十)

二进制是由 0 ~ 1 组成的八进制是由 0 ~ 7组成的十进制是由 0 ~ 9组成的十六进制是由 0 ~ 15 组成的,可是 9 后面的的 10 是用字母来代替 A~ F ,也就是 0 ~ F,用字母代替了数字,避免不再重复之前刚接触 python 的时候学了以下 二进制,现在从八进制开始继续往下走python 提供了一个方法,可以将任意数字专成 八进制oct() : 将...

2018-12-02 14:35:48 35251 1

原创 python 入门之 – 集合类型(十九)

在 python 中,集合是一个无序的,不重复的数据组合,他的主要工作如下:1、去重,把一个列表变成集合,就自动去重了2、关系测试,测试两组数据之间的交集、差集、并集等关系我来举个例子,前两个月出了 iPhoneXS ,去年出了 iPhoneX,我现在想知道有多少人不仅去年买了 iPhoneX 今年也买了iPhoneXS ,如下两个数组:iPhoneX = ['张三','李四','王五',...

2018-11-25 00:27:49 210

原创 前端 mvc 框架 Vue.js 堆栈内存深度 copy

Vue.js 是当下前端最主流的框架之一,强大的 mvc 模式,让我们可以放弃传统式通过 JS 去操作 DOM ,我们只需要关注数据层就可以了,只要数据更新,我们的 view 层就会自动更新渲染。可是这样的模式,在一些特殊场景下却并不是特别好用,当组件间传递对象时,由于此对象的引用类型指向的都是一个地址(除了基本类型跟null,对象之间的赋值,只是将栈内存地址指向同一个,而不是真正意义上的拷贝)...

2018-11-24 16:52:45 358

原创 TypeScrip入门—环境搭建和第一个TS代码(一)

介绍TypeScript 扩展了 JavaScript 语法,任何已经存在的 JavaScript 程序,可以不加任何改动,在 TypeScript 环境下运行。TypeScript 只是向 JavaScript 添加了一些新的遵循 ES6 规范的语法,以及基于类的面向对象编程的这种特性。其次,从 2016 年 9 月底发布的 Angular2 框架开始,就由 TypeScript 编写的,...

2018-11-21 14:22:17 315

原创 原生 JavaScript 设置浏览器缓存及cookie

//设置缓存function set_cache(key,value){ if(key=='') return false; localStorage.setItem(key, value);}//读取缓存function get_cache(key){ return localStorage.getItem(key);}//删除缓存function re...

2018-11-20 15:17:43 1267

原创 python 入门之 – 数据字典(十八)

通过标题名称可以知道,字典是用来查询数据的,它是以 key 和 value 的形式存在的,在学习数据字典之前我来用几个例子说明一下,如:info = [ ['张三',21,'男','程序员'], ['李四',18,'女','设计师'], ['王五',26,'男','策划'], ['赵六',21,'男','实习生'],]这里是一组人员的信息,我现在要找到张三的...

2018-11-19 23:37:37 1171

原创 python 入门之 – hash(十七)

Hash ,一般翻译成“散列”,也有直接音译为 “哈希” 的,就是把任意字符串的输入,通过散列算法,变成固定长度的输出,该输出也叫散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。特征:Hash 值的计算过程是依据这个值的一些特征计...

2018-11-19 08:16:14 146

原创 python 入门之 – 初识元祖(十六)

元祖其实和列表差不多,也是村一数组,只是一旦创建,便不能再修改,所以又叫只读列表元祖的特性1、不可变2、元祖本身不可变,如果元祖中还包含其他可变元素,这些可变元素可以改变元祖是一对小括号扩起来的数组,如:user=("id","name","age")他和数组一样可以通过下标来获取,如:但是他和数组的区别是他是不可变的,如:可以看到

2018-11-19 08:16:02 230

原创 python 入门之 – 字符串类型及操作方法(十五)

在之前学基本数据类型的时候知道了,在 python 中,字符串 是一个有序的字符的集合,用于存储和表示基本的文本信息,由一对 单引号 或 双引号 又或者是 三引号 包含着,但是 字符串 有两个特点:1、有序2、不可变其实字符串有序,都很好理解,就是通过语言本身提供的方法来对字符串进行一些处理,不可变是因为 python 的运行机制,其实不单单只有 python 有,别的语言也是一样的。不可...

2018-11-19 08:15:54 227

原创 python 入门之 – 深度copy 与 数据类型内存地址(十四)

在深入了解 python 的 copy() 方法之前先回顾以前以前学过的变量赋值,如:a = 123123b = aprint(b)毫无疑问,在变量中我可以直接以等于号来复制一个值出来,打印出来的是和 a 相等的值,如:123123,但是在数组中为什么用这种方法不行,最后找到了一个方法,id()id()id() 方法使用来查看 变量 在计算机中真实的 内存地址 的一个方法,如:a ...

2018-11-18 22:02:17 208

原创 python 入门之 – for 循环(十三)

Python 的 for循环 可以遍历任何序列的项目,如一个列表数组或者一个字符串。语法:for 代理变量 in 对象 : 执行操作(代理变量)如,我现在要遍历循环一个字符串,把每个字符单独输出:string = '123456'for i in string: print(i)我用 python 运行这个文件,得到的结果如下:以上结果,等于把整个字符串都...

2018-11-18 21:54:08 290

原创 python 入门之 – 数组类型(十二)

关于数组类型,有过编程基础的都知道是怎么回事儿,最为代表的其实就是 JOSN 格式的数据了,在 python 中定义数组,其实就是和 JS 中可以说一摸一样,如:arr = []print(type(arr))我先用 type() 方法判断一下变量 arr 的类型,打印出来了是 <class 'list'>list 语义话的意思其实就是列表或者说数组集合,其实数组里面有好多种...

2018-11-18 21:44:12 346

原创 python 入门之 – 数字类型科学计数法(十一)

之前学的 python 基本数据类型 中,在计算数字类型的时候其实有一个 科学计数法关于 科学计数法,其实就是 10 的多少次方程式,不管是整数,还是浮点数,都可以使用,如:a = 10.24e2print(a)计算出的结果其实就 1024 ,在数字类型中如果中间有字母 e 夹杂在其中,那么后面就是 10 的 多少次平方 乘以前面的数字得到的实际数。关于 浮点数 ,经过学习得知,在 p...

2018-11-18 21:19:28 5541

原创 python 入门之 – 数字转二进制,字符编码(十)

数字转二进制计算机语言有无数种,但是到头来最后还是会转成 二进制 ,因为计算机只认识 二进制 的格式的编码,数字转 二进制 有无数种公式算法,但是 在 python 中,数字转二进制编码 只需要通过一个方法就行了 :bin() ,如:a = 123b = bin(a)print(b)运行结果如:0b1111011,0b 代表的是二进制 0b 后面跟着的就是 二进制 编码的运算结果所以结...

2018-11-18 21:16:24 4077

原创 python 入门之 – 初识 while 循环(九)

在 python 中,循环能帮助开发者用更少的代码编写更多逻辑,例如,我要执行十次一摸一样的功能,如果不用循环的情况下,我需要写十次一摸一样的代码,这样会让我们的代码变的更加繁琐,没有一点简洁性和优美性。既然要写循环,那么肯定要有条件,当满足一定的条件的时候,才会执行循环,就算条件再差,至少也要告诉 python ,我要执行多少次循环,所以循环是有条件的,与流程控制一样,其实可以把循环也看作是流...

2018-11-18 21:13:19 252

高德地图 API 实现 自定义创建多个可拉伸锚点矩形。

原生 JavaScript 仿 有赞商户后台,介入高德地图,实现地图自定义区域矩形划分并绑定 ui 层,几乎每行代码都有注释,方便修改理解。 适用多个项目领域,如:外卖送货、共享单车区域划分、配送商品等。 纯前端JavaScript demo代码,不含任何后端代码,需要自己添加 http 请求即可

2020-03-19

空空如也

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

TA关注的人

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