自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (3)
  • 收藏
  • 关注

原创 javascript-锁定eval执行时this为window全局变量

在执行eval的时候存在直接执行和间接执行的区别,它们的运行时的上下文是不一样的,直接执行时为当前执行的this,而间接执行上下文是稳定的window。上面的代码输出是这样的,直接调用可以往上层空间查找变量,而间接调用上下文是window就不能查找到内部变量。所以如果需要eval保持上下文为window就使用下面的方式来调用eval。也可以试一下下面的代码对eval上下文进行了解。上面的代码输出是这样的。

2024-09-09 09:46:51 251

原创 javascript-eval动态引入mqtt.min.js

看了mqtt.Js的源码,因为它是直接var mqtt = .... 这样子的,在使用script标签加载的时候会产生一个全局变量mqtt,但是eval的时候不会产生这个全局的mqtt对象,所以需要拼接一下代码将里面声明的mqtt返回处理.在项目中一般mqtt是某一个特定的功能才会使用mqtt,而且mqtt体积也不小,所以一般是打开某些功能的时候才会进行mqtt加载,一般情况就是用fetch和eval配合一下。看看下面的代码就大概知道eval是怎么返回变量的了,eval会将最后一个语句块作为结果返回。

2024-09-09 09:46:30 196

原创 linux-nginx 怎么设置开机自启动

linux-nginx 怎么设置开机自启动

2024-03-06 11:22:24 698

原创 linux-开机启动nodejs脚本

在Linux系统中,开机启动nodejs脚本,将Node.js脚本添加到启动项通常涉及到创建一个服务或使用系统的初始化系统来实现。

2024-03-06 11:05:35 1333

原创 docker-快速部署nginx并映射当前目录静态文件及配置文件

一个小公司也用上了docker,经常需要部署nginx服务,我通常都会把他们上传到一个目录,大概就是下面的样子。这条命令是用于在Docker中运行一个名为“nginx”的容器。就是一个简单的nginx配置(因为经常需要配置代理不想进入容器和拷贝),和指定一个静态文件目录,(静态文件需要经常更新也不想进入容器和拷贝)下面是默认的nginx配置文件default.conf。

2024-01-09 09:47:09 1398

原创 javascript-将本地存储(localStorage)中的数据导出为文本文件

一般情况本地存储很少会被干满的,但是总会有被干满的时候,这时就需要查看本地存储具体存了什么内容,才能更好排查问题。总的来说,这段代码的功能是将本地存储中的数据导出为 JSON 格式的文本文件,并自动下载到用户的设备上。)中的数据导出为文本文件,并自动下载到用户的设备上。这段 JavaScript 代码主要是用于将本地存储(使用下面代码就能快速将本地存储导出,然后慢慢排查了。

2024-01-08 11:20:45 782

原创 NGINX-怎么在文件不存在时才进行代理并且代理到指定的后端url上

当你的前端应用(如使用 React、Angular 等构建的单页应用)和后端服务(如 API 服务器)是分离的,并且前端应用需要访问后端服务的 API 时,你可以使用这种配置。(或者其他某个特定的 URL),如果这个 URL 对应的内容不存在,那么 Nginx 会将请求代理到后端服务器上,并返回后端服务器的响应。),而这个页面在 SPA 中不存在,那么你应该将请求代理到后端服务器,让后端服务器根据请求的 URL 返回相应的内容。假设你有一个前端单页应用(SPA),当用户访问应用的根 URL(例如。

2023-12-21 10:56:48 577

原创 NGINX-配置websocket反向代理

指定匹配的URL路径是以"/console"开头的请求。:指定代理转发的目标地址是"http://127.0.0.1:8080/console",也就是将请求转发给本地的8080端口上的/console后端服务。总结起来,这段配置的作用是将以"/console"开头的请求转发给本地的8080端口上的/console后端服务,并通过适当的设置确保代理的顺利进行。:将请求头中的Upgrade字段的值传递给后端服务。:将请求头中的Connection字段的值设置为"Upgrade",同样也是为了支持协议升级。

2023-12-19 10:02:00 703

原创 GIT-提交错了分支怎么办

此命令将暂存的文件提交到Git的暂存栈中,即将当前分支的未提交的更改保存起来。最后,您可以正常提交代码以完成修复。:此命令是将代码库回退到指定的提交,即将最近的一次错误提交取消,并将其放回暂存区。:此命令用于切换到包含错误提交的分支,即含有错误提交代码的分支,以便后续进行修复。:此命令用于切换回包含正确代码的分支,即之前的正确提交所在的分支。:此命令将当前目录下的所有文件提交到暂存区,以便后续提交。git stash (把暂存的文件提交到git的暂存栈)表示将最近的一次提交放回暂存区,并取消该次提交。

2023-12-18 17:25:51 665

原创 linux把当前目录挂在到docker运行nodejs应用

这里是运行 `node /data/webhook.node.js`,其中 `/data/webhook.node.js` 是在容器内的 `/data` 目录下的一个 Node.js 脚本文件。使用这个 `docker run` 命令,你可以在容器中以后台运行的方式,启动一个名为 `node8010` 的容器,映射到主机的 8010 端口,并执行 `/data/webhook.node.js` 脚本文件。- `-v $(pwd):/data`: 将当前工作目录挂载到容器内的 `/data` 目录。

2023-07-07 00:30:00 321 1

原创 linux中sudo未找到命令npm和node

我的nodejs是在官网下载的,并且里链接到了/usr/local/bin这个目录里面这样子root用户登录的时候执行npm和node命令是正常的但是使用sudo npm install的时候就会提示-bash: npm: 未找到命令-bash: node: 未找到命令如果你想使用sudo命令来以管理员权限运行node命令,可以按照以下步骤进行:执行以下命令,编辑sudo在打开的文件中,找到这将告诉sudo命令在执行时安全目录的环境变量。

2023-07-06 17:34:21 3980 1

原创 UNIAPP检测是否有打包push模块

这个图片大家都很熟悉,在UNIAPP打包时没有勾选push模块,调用push相关功能就会进行提示。

2023-06-12 15:26:07 470

原创 typescript泛型基础使用

在函数调用时,可以使用尖括号传入具体的类型值,也可以让 TypeScript 自动推断出类型。例如,上面的调用中,参数为字符串,TypeScript 会自动将。TypeScript 中的泛型可以帮助我们编写更加灵活和可复用的代码,它可以在函数、接口、类等语法结构中使用。在使用泛型时,我们可以使用不同的类型值来实现不同的需求,帮助我们编写更加灵活和可复用的代码。接口,它表示一个可添加、删除并访问指定位置元素的列表类型,其中元素类型使用泛型。在上面的例子中,我们使用了函数泛型,定义了一个名为。

2023-06-11 10:06:34 69

原创 html里面iframe实现跨域与主页面通信

);在主页面上,可以使用来监听来自不同源的页面发送的消息。当监听到消息时,可以在回调函数中处理消息内容event.data。需要在主页面的监听函数中检查来源地址是否正确,这样防止页面被恶意注入代码,保障安全性。注意:在使用方法传递数据时,数据可以是任何 JS 支持的数据类型,包括字符串、数字、布尔值、对象、数组等,但不支持函数或 DOM 节点对象等引用类型。传递引用类型的数据可以先使用方法序列化为字符串,然后在接收端使用方法进行反序列化。以上就是基于方法实现跨域通信的基本流程。

2023-06-09 14:29:17 1049

原创 nodejs使用exec运行adb对安卓设备进行截图

你可以将路径修改为你需要保存截图的路径。另外,请注意检查是否已经将 adb 工具添加到环境变量中。命令,该命令会将安卓设备的屏幕截图保存到标准输出(stdout)中。模块将标准输出流中的数据保存到指定路径的文件中。下面是一个 Node.js 中使用。上述代码从子进程中运行。

2023-06-01 23:46:25 708

原创 正则表达式,一些常用的正则表达式例子

这些正则表达式只是一小部分,实际上正则表达式的应用非常广泛。需要根据具体的需求进行编写和调整。

2023-05-31 22:30:00 149

原创 HTML事件传递,捕获阶段,目标阶段,冒泡阶段

HTML 事件传递的过程是一个由外向内再由内向外的过程,同时允许在特定的阶段阻止事件的传递和默认的行为

2023-05-30 11:47:38 615

原创 正则表达式校验身份证号码

这个正则表达式可以匹配类似于 “110101198001011234” 的身份证号码。需要注意的是,这个正则表达式并不能完全保证身份证。

2023-05-29 20:00:00 6031 1

原创 typescript配置允许隐式声明any

需要注意的是,虽然隐式声明 any 类型会提高开发效率,但同时也会降低 TypeScript 的类型检查能力。如果你需要更好的类型安全性,还是建议尽可能地显式地声明变量和参数的类型。选项来禁止隐式声明 any 类型,这是 TypeScript 的默认行为。这样编译器就会允许你隐式声明 any 类型了。在 TypeScript 中,可以通过配置。

2023-05-28 10:31:59 2620

原创 typescript给window/global多声明一个属性

在一般的编程过程中,我比较喜欢在全局变量声明一个程序使用的配置的对象属性,为了避免冲突,我一般都在这个对象属性再做扩展,例如下面的格式在 TypeScript 中,如果你需要在全局对象window上添加一个自定义属性,可以使用模块化的方式来声明它。模块化允许您在文件中定义自己的私有范围。您可以使用独立的文件或export语句来导出该属性,然后在需要它的代码中导入它。例如,假设你需要在window对象上声明一个名为myProperty。

2023-05-27 11:39:06 4898 1

原创 typescript对象声明可选属性,可选函数方法

以上是在 TypeScript 开发中对象声明需要注意的一些细节,开发者们在使用 TypeScript 时如果注意一些这些细节可以更加方便和高效地使用该语言。在typescript开发中我经常遇到一些JSON对象声明,在传参的过程中,对象经常会缺失参数或者参数未定义导致编译失败,在对象声明时我应该注意什么。

2023-05-26 22:15:58 1488 1

原创 GIT - checkout指定head的某个文件

是要检出的文件路径。这个命令会将指定提交中的指定文件覆盖当前工作目录中的同名文件,并将文件的更改提交到暂存区域。如果你要在 Git 中引用该提交,可以使用该标识符作为参数。在上面的例子中,第一行显示了一个提交的 SHA-1 标识符 (是要检出的目标提交的 SHA-1 标识符或分支名称,如果只需要查看文件而不是将其检出到工作目录中,请使用。那怎么通过git命令查看SHA-1标识符呢。命令检出该提交的版本。

2023-05-25 22:08:50 1835

原创 在linux里面把一个在前台运行的命令转为后台运行

命令将在后台继续运行。您可以执行其他命令,而无需等待该命令完成。快捷键将一个正在前台运行的命令暂停,并使其转为后台运行。快捷键暂停当前正在前台运行的命令。命令查看当前正在执行的作业列表。例如,假设您正在前台运行一个名为。命令,查看处于后台状态的作业。命令将前台作业转移到后台。命令将作业切换回前台运行。命令将它转移到后台。命令转移到后台运行。

2023-05-24 08:00:00 3477

原创 nodejs开发本地的公用包

在Node.js开发中,你可以使用npm(Node.js包管理器)来创建、管理和分享模块和包。如果您需要在多个项目中分享公共代码包,则可以使用npm来创建和管理这些公共包。在你的本地文件夹中创建一个新的文件夹,作为你的代码包的根目录。在这个文件夹中,你将创建用于存储代码和描述文件的子文件夹和文件。使用npm init命令来初始化你的代码包。在执行此命令时会问你一些问题,例如名称、版本、描述等。你需要根据实际情况回答这些问题。npm init在你的代码包子文件夹下,你可以编写你的代码。

2023-05-23 08:00:00 1078

原创 javascript 一个简单的列表结构转树状结构方法

用JS代码写一个将结构[{id:1},{id:2, pid: 1},{id:3, pid: 2}]转换成[{id:1, children:[{id:2, pid: 1, children: [{id:3, pid: 2}] }] }]的方法

2023-05-22 22:00:00 1068 1

原创 element plus 结合useDark方式实现动态切换暗黑模式

element plus 结合useDark方式实现动态切换暗黑模式

2023-05-21 00:15:00 1642

原创 DevExtreme 里面data grid 怎么滚动到指定位置

最近开发用到devextreme组件库里面的data grid组件,在处理大量数据的时候,滚动后进行表头搜索有可能导致索引,勾选框和内容错位的情况,要解决这种异常,目前是用代码让表单滚动到顶部后再进行搜索,那么devextreme里面data grid 怎么滚动到指定位置?另外,如果需要进一步控制数据表格的滚动,也可以使用 swipeDown 或 swipeUp 方法来滚动表格,或者监听 onScroll 事件来响应表格的滚动事件。方法将 DataGrid 滚动到了第 300 行上方,而。

2023-05-20 10:31:55 389 1

原创 JS里面怎么把单词的首个字母转换成小写

日常编码时经常使用字符串拼接产生具有规则的字符串,我经常使用全小写+下划线进行拼接字符串, 有的时候遇到首字母是大写的单词需要拼接,遇上这种情况可以使用JavaScript的内置方法。方法获取除了首字母之外的子字符串,并拼接成最终的结果。将字符串的首字母转换为小写。方法获取到字符串的首字母,方法将其转换为小写,

2023-05-19 10:51:13 1026 1

原创 正则表达式校验密码策略最少8位,大小写字母加符号加数字的组合

在上面的示例代码中,定义了一个表单元素和一个密码输入框。当用户提交表单时,调用。如果你需要在表单中校验密码时,可以在表单提交时触发一个函数进行校验。如果密码符合要求,则提交表单;你可以将上面的正则表达式编译成一个 RegExp 对象,然后调用它的。方法,判断密码是否符合正则表达式的要求。在上面的示例代码中,首先定义了一个待校验的密码字符串。如果密码符合以上要求,这个正则表达式就会匹配成功。方法来测试一个字符串是否匹配一个正则表达式。方法会返回一个布尔值,如果匹配成功则返回。,然后将正则表达式编译成一个。

2023-05-17 22:11:58 4373

BATTOOL右键创建批处理工具

本人经常使用dos类软件,而很多时候DOS控制台一闪而过。 打开cmd命令又需要切换目录。 经常需要创建一个批处理BAT文件,里面仅有一句@cmd 双击运行就是批处理启动文件目录。 但是创建又要修改后缀编辑等等。十分麻烦。 所以写了这个一个辅助小工具。 安装 1.运行软件 2.点击安装,再点击下面的安装。 功能介绍 就是在文件夹的右键新建菜单中添加一个新建批处理的选项。 可以自定义添加各种批处理模版。 只要将常用的批处理文件放到安装目录下就可以了

2014-05-12

DELPHI动态创建删除FRAME---示例源码

DELPHI动态创建删除FRAME unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls,FM; type TForm2 = class(TForm) Panel1: TPanel; Button2: TButton; ScrollBox1: TScrollBox; procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; type TFM = Array Of TFrame1; var Form2: TForm2; aFM: TFM; procedure DeleteArrItem(var arr: TFM ; Index: Integer);stdcall; implementation {$R *.dfm} procedure DeleteArrItem(var arr: TFM ; Index: Integer); var Count: Cardinal; i:integer; begin Count := Length(arr); if (Count = 0) or (Index = Count) then Exit; Move(arr[Index+1], arr[Index], (Count-Index)* SizeOf(arr[0])); SetLength(arr, Count - 1); for I := 0 to Length(arr) - 1 do begin arr[i].Label1.Caption:=inttostr(i); end; end; procedure TForm2.Button2Click(Sender: TObject); var fram:TFrame1; begin SetLength(aFM,length(aFM)+1); aFM[length(aFM)-1] :=TFrame1.Create(nil) ; fram:=aFM[length(aFM)-1]; fram.Label1.Caption:=inttostr(length(aFM)-1); fram.Parent:=ScrollBox1; end; end. unit fm; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TFrame1 = class(TFrame) GroupBox1: TGroupBox; Label1: TLabel; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; implementation uses unit2; {$R *.dfm} procedure TFrame1.Button1Click(Sender: TObject); begin DeleteArrItem(aFM,strtoint(label1.Caption)); ( Sender as Tbutton ).Parent.Parent.Destroy; end; end.

2013-05-09

SPY++ 查看窗口消息好帮手

SPY++ 查看窗口消息好帮手 Spy++ (SPYXX.EXE) 是一个基于 Win32(最新版本支持Win64) 的实用工具,它提供系统的进程、线程、窗口和窗口消息的图形视图。使用 Spy++ 可以执行下列操作: 显示系统对象(包括进程、线程和窗口)之间关系的图形树。 搜索指定的窗口、线程、进程或消息。 查看选定的窗口、线程、进程或消息的属性。 直接从视图中选择窗口、线程、进程或消息。 通过鼠标定位,使用查找程序工具选择窗口。 使用复杂的消息日志选择参数设置消息选项。 提示使用 Spy++ 时,在许多实例中都可以单击鼠标右键显示常用命令的弹出式菜单。命令是否可用取决于指针的位置。例如,如果在指向窗口视图中的某项时单击并且选定的窗口可见,则弹出式“突出显示”菜单项将导致选定窗口的边框闪烁,从而可以轻松地在屏幕上找到该窗口。 Spy++ Lite是一款强有力的编程辅助工具,对分析窗体结构有独到之处。可以以十六进制和十进制两种不同方式显示窗口句柄等所有数值。本软件还可以简单调节窗口的状态和形为,如是否可见,是否可用,最大化,激活等。除此以外,您还可以把它当作一个截图的小工具来用。

2013-03-02

空空如也

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

TA关注的人

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