我的作品
更多
Land 主题
Land 主题
一个 WordPress 企业主题
River 主题
River 主题
一个 WordPress 博客主题
Flame 插件
Flame 插件
WordPress 插件,增强 RESTful API 功能
AIBOT 插件
AIBOT 插件
一款 AI 插件,协助创作。自动批量生成和发布文章。
Light 主题
Light 主题
Flame 插件的配套主题
最新文章
一,TypeScript 基本操作安装 TypeScript:npm install -g typescript 编写 test.ts 文件function greeter(person: string) { return "Hello, " + person; } let user = [0, 1, 2]; document.body.innerHTML = greeter(user); 编译 ts 文件生成 js 文件:tsc test.ts 提示:greeter.ts(7,26): error TS2345: Argument of type 'number[]' is no
admin 2022-01-19 Node.js 882
简介curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。它的功能非常强大,命令行参数多达几十种。如果熟练的话,完全可以取代 Postman 这一类的图形界面工具。本文介绍它的主要命令行参数,作为日常的参考,方便查阅。内容主要翻译自《curl cookbook》。为了节约篇幅,下面的例子不包括运行时的输出,初学者可以先看我以前写的《curl 初学者教程》。不带有任何参数时,curl 就是发出 GET 请求。$ curl https://www.example.com上面命令向www.example.com发出 GET 请求,服务器返回
admin 2022-01-13 开发工具 762
一、N-API 开发方式介绍在 NAN 的开发方式下,一次编写好的代码在不同版本的 Node.js 下也需要重新编译,否则版本不符的话 Node.js 无法正常载入一个 C++ 扩展。即一次编写,到处编译。而 N-API 相较于 NAN 来说,它把 Node.js 的所有底层数据结构全部黑盒化,抽象成 N-API 当中的接口。不同版本的 Node.js 使用同样的接口,这些接口是稳定地 ABI 化的,即应用二进制接口(Application Binary Interface)。这使得在不同 Node.js 下,只要 ABI 的版本号一致,编译好的 C++ 扩展就可以直接使用,而不需要重新编译。
admin 2021-12-30 Node.js 593
Window.getComputedStyle()Window.getComputedStyle()方法返回一个对象,该对象包含元素的所有 CSS 属性的值。获取元素属性 style #elem-container{ position: absolute; left: 100px; top: 200px; height: 100px; } /style div id="elem-container" dummy /div div id="output" /div script function getTheStyle
admin 2021-12-27 CSS JavaScript 496
njs 简介Nginx 是C语言开发的,很多人扩展 Nginx 的功能,并未使用 C 语言开发,更常见的是使用 Lua 扩展和定制 Nginx 服务。比较著名的是 OpenResty 使用 lua-nginx-module 模块运行 Lua 语言,并集成了大量精良的 Lua 库、第三方模块,可以方便地搭建能够处理超高并发、扩展性极高的 Web 服务。就像Atwood定律所描述一样,该来的又来了。现在最新版本的 Nginx 1.9.11+ 已经推出了 njs 模块,可以在 nginx 的配置中引入 JavaScript 脚本,从而实现一些更复杂的 nginx 配置功能。NJS 模块并不是运行一个
admin 2021-12-25 JavaScript 1237
SVG 的知识基础你可能学习过关于 SVG 的基础知识,并且能读懂 SVG 的结构。至少你知道:SVG 元素: svg , symbol , g , path SVG 属性: d, fill, stroke, stroke-width注意:从绘图工具中导出的 SVG 经常带着一些不必要的内容和标签等(其中 d 下面包含了清晰的路径数据),可以使用工具比如 SVGOMG ,然后比较一下处理前后哪些东西是移除或简化过的。移除颜色数据通常单色图标的源文件中, path 的颜色都是黑色 #000000。并且没有 fill 属性。如果我们在 SVG 文件中设置了 fill 属性,就不能通过 CSS
admin 2021-12-24 CSS 618
iconfont.cn 官方给我们讲解 iconfont 的实现原理。字体内部我们来看下一个字体的样子。我们可以通过一些软件打开字体,比如fontforge,fontlab。比如下面的方正大草字体:我们打开看下:可以看到“我”这个字对应的的图形就是我们在网页上看到的样子。另外注意左上角的unicode。是6211,也就是我们的另一种表现形式。再双击可以看到我这个图形的样子:其实就是一些路径。而这个路径可以用ai,ps,sketch等等来画,画完粘贴到这里。iconfont1.0所以我们就可以做一些事情了,我们可以去改造字体,把一个字对应的图形换成我们设计师设计的样子,处理好兼容性就成了我们ic
admin 2021-12-24 CSS 673
\w匹配的仅仅是中文,数字,字母,对于国人来讲,仅匹配中文时常会用到,见下匹配中文字符的正则表达式: [\u4e00-\u9fa5]或许你也需要匹配双字节字符,中文也是双字节的字符匹配双字节字符(包括汉字在内):[^\x00-\xff]注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)更多常用正则表达式匹配规则:英文字母:[a-zA-Z]数字:[0-9]匹配中文,英文字母和数字及_:^[\u4e00-\u9fa5_a-zA-Z0-9]+$同时判断输入长度:[\u4e00-\u9fa5_a-zA-Z0-9_]{4,10}^[\w\u4E00-\u9FA5\uF900-\u
admin 2021-12-23 其他 538
进制 (system of numeration)进制也就是进位制。进行加法运算时逢X进一(满X进一),进行减法运算时借一当X,这就是X进制,这种进制也就包含X个数字,基数为X。十进制有 0~9 共10个数字,基数为10,在加减法运算中,逢十进一,借一当十。十进制(Decimalism)使用的数字都是由 0~9 共十个数字组成的,逢十进一,也因为只有 0~9 共十个数字,所以叫做十进制。 人类算数采用十进制,可能跟人类有十根手指有关。 数位有一定的意义,从右往左分别表示个位、十位、百位、千位……二进制(Binary)从十进制计数法类推,使用的数字只有 0、1两种,这就是二进制。例如,数字 0、
admin 2021-12-23 其他 533
蛮荒时期 CSS Sprites在很久很久以前,使用图标一般是直接使用图片,或者使用雪碧图。缺点是颜色单一,难以维护。//CSS [class^="icon-"],[class*=" icon-"] { display: inline-block; width: 14px; height: 14px; margin-top: 1px; *margin-right: .3em; line-height: 14px; vertical-align: text-top; background-image: url(bootstrap/img/glyphicons-h
admin 2021-12-21 CSS 522
node-sass 的问题之前一直用的是 node-sass,他包含两部分,一个是使用 Node.js 编写的包裹器 Wrapper,一个是使用C++编写的 Sass 编译器 libsass,最开始是不同平台编译这个编译器麻烦,后来node-sass就直接发布各个平台编译好的编译器了。在国外就解决了编译的问题。在国内因为下载源被墙,所以常出现各种安装失败。https://javascript.net.cn/articles/657https://javascript.net.cn/articles/631sass 官方主推 dart-sassdart-sass是Sass的主要实现,它快速,易于
admin 2021-12-17 CSS 631
项目地址:https://www.npmjs.com/package/koa-csrf安装:npm install koa-csrf 需要配合session使用:// CSRF 防御 const CSRF = require('koa-csrf'); const csrfMD = new CSRF({ invalidSessionSecretMessage: 'Invalid session secret', invalidTokenMessage: 'Invalid CSRF token', invalidTokenStatusCode: 403, }); router.post
admin 2021-12-15 Node.js 583
XSS:Cross Site Scrit 跨站脚本攻击(为与 CSS 区别,所以在安全领域叫 XSS),通常是指黑客通过“HTML注入”,篡改了网页,插入了恶意脚本,从而在用户浏览网页时,控制用户浏览器的一种方法。跨站已经不重要,现在叫做“HTML注入”可能更加合适,单因为历史原因XSS这个名字一直保留下来。一,输入检查1.1 格式检查比如用户注册时检查账户、电话号码、邮件和生日等信息,都有一定格式规范。比如 "lordwang" 是一个合法的用户名,而字符串 "lordwang';select..." 不是一个合法的用户名。某种意义上,这些都属于白名单,可以让大部分攻击无效。Node.js
admin 2021-12-11 Node.js 543
一,进程和线程简介进程是资源分配的最小单位,线程是CPU调度的最小单位 进程:进程是一个有独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。进程是一种抽象的概念,一般定义是:进程由程序,数据集合和进程控制块三部分组成。(进程是资源分配的最小单位)。 线程:在早期的操作系统中并没有线程的概念,随着计算机的发展,为了应对进程之间的切换带来的巨大开销,就发明了线程,线程是程序执行中一个单一的顺序控制流程,一个进程可以有一个或多个线程,各个线程之间共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。(线程是c
admin 2021-12-07 JavaScript Node.js 526
实现websocket主要是两点,一个是协议的升级,再者就是数据包的解析与封装。目前比较火的websocket框架有socket.io 和 wssocket.io http://socket.io:43.5k star实际上不是一个 WebSocket 库,而是一个实时 pub/sub 框架。简单地说,Socket.io 是包含 WebSocket 功能的一个框架,如果要使用该库作为 server 端的服务,则 client 也必须使用该库,因为它不是标准的 WebSocket 协议,而是基于 WebSocket 再包装的消息通信协议。websockets/ws:9k star强大易用的 we
admin 2021-12-02 Node.js 452
格式:\033[背景色编号;字色编号m 颜色属性:字色编号:30黑,31红,32绿,33黄,34蓝,35紫,36深绿,37白色背景编号:40黑,41红,42绿,43黄,44蓝,45紫,46深绿,47白色例子:console.log('\033[42;30m Error \033[40;32m 出错了 \033[0m'); 用绿底(42)黑字(30)显示“Error”,然后使用黑底(40)绿字(32)显示余下的信息,最后关闭所有属性(\033[0m)其他标记:\033[0m 关闭所有属性 \033[1m 设置高亮度 \033[4m 下划线 \033[5m 闪烁 \033[7m 反显
admin 2021-12-01 JavaScript Node.js 513
Node.js 要求 ES6 模块采用.mjs 作为后缀。只有.mjs后缀的文件可以使用import或者export命令。如果不希望将后缀名改成.mjs,可以在项目的package.json文件中,指定type字段为module。{ "type": "module" } 这时还要使用 CommonJS 模块,那么需要将 CommonJS 脚本的后缀名都改成.cjs。ES6 模块与 CommonJS 模块尽量不要混用。require()命令不能直接加载 ES6 模块,因为它是同步加载。ES6 模块的import命令可以加载 CommonJS 模块,但是只能整体加载,不能只加载单一的输
admin 2021-11-14 Node.js 656
依赖注入(DI)和控制反转(Ioc) 是从两个不同角度描述的同一个概念。当某个对象(调用者)需要调用另一个对象(被调用者,即被依赖对象)时,调用者通常会采用“new 被调用者”的代码方式来创建对象.在使用某些框架之后,对象的实例不再由调用者来创建,而是由容器来创建,容器负责控制程序之间的关系,控制权由应用代码转移到了框架,被称为“控制反转”。从框架的角度来看,框架负责将被依赖对象赋值给调用者的成员变量,这相当于为调用者注入了它依赖的实例,这就是“依赖注入”。容器,字面上理解就是装东西的东西。在这里容器容纳的是对象、对象的描述(类、接口)或者是提供对象的回调,通过这种容器,可以实现 “依赖注入(
admin 2021-11-13 其他 560
简介03 年 Eric Evans 的 Domain Driven Design 一书,以及后续 Vaughn Vernon 的 Implementing DDD , Uncle Bob 的 Clean Architecture 等书,真正的从业务的角度出发,为全世界绝大部分做纯业务的开发提供了一整套的架构思路。 POP,OOP,DDD是如何解决问题面向过程编程(POP),接触到需求第一步考虑把需求自顶向下分解成一个一个函数。并且在这个过程中考虑分层,模块化等具体的组织方式,从而分解软件的复杂度。当软件的复杂度不是很大,POP也能得到很好的效果。 面向对象编程(OOP),接触到需求第一步考虑
admin 2021-11-11 其他 674
MacOS 不像 Linux 有 /etc/init.d/rc.local 以及 service 的方式可以自动启动。而是使用 plist 文件,文件里描述程序路径和启动参数,用户登录后就会启动这个程序,而且pkill进程以后,程序会自动重启。plist文件分布在:/System/Library/LaunchDaemons # 是用户未登陆前就启动的服务(守护进程) /System/Library/LaunchAgents # 由Mac OS X为用户定义的任务项 /Library/LaunchDaemons # 由管理员定义的守护进程任务项 /Library/Launc
admin 2021-10-18 运维 1113
随机推荐
Debian11 安装笔记2:编译安装PHP
JavaScript 和 CSS 检测横屏适配
WordPress 文章置顶循环
WordPress 修改 RESTful API 的请求和响应
WordPress 用户信息
WordPress 插件开发
Git 放弃本地修改,强制和之前的某次提交同步
JavaScript 的历史