最新文章
简介做爬虫解析 HTML,之前一直是用 cheerio,随着 jQuery 的渐行渐远,使用 cheerio 的类 jQuery API 已经成为一种负担, 我使用这个支持 Selectors API 的解析器 node-html-parser 来代替 cheerio。前后端的 HTML Selectors API 终于统一了。官方地址:https://www.npmjs.com/package/node-html-parser在 npmjs.com 的周下载量是:1,777,505。 cheerio 的周下载量是 6,696,323。执行速度上:cheerio :12.072
像素鱼丸 2022-02-28 JavaScript Node.js 2010
媒体查询(Media queries)非常实用,尤其是当你想要根据设备的大致类型(如打印设备与带屏幕的设备)或者特定的特征和设备参数(例如屏幕分辨率和浏览器视窗宽度)来修改网站或应用程序时。使用Window.matchMedia() 和MediaQueryList.addListener() 方法来测试和监控媒体状态。媒体特性(Media features)描述了 user agent、输出设备,或是浏览环境的具体特征。媒体特性表达式是完全可选的,它负责测试这些特性或特征是否存在、值为多少。每条媒体特性表达式都必须用括号括起来。最常用的媒体特性肯定就是“width"了。今天介绍的这个 CSS
像素鱼丸 2022-02-22 CSS 1292
var assert = require("assert"); var request = require('supertest'); // describe('接口测试', async function () { const http = require('http'); const app = require('../../app'); const PORT = process.env.PORT || 3003; const SERVER = http.createServer(app.callback()); it('获取 API 版本信息', (done) = { let
像素鱼丸 2022-02-22 JavaScript Node.js 1354
Jest 简介Jest 是一个越来越流行的测试框架,使用率渐渐超过了Mocha, 这些项目都在使用 Jest:Babel、 TypeScript、 Node、 React、 Angular、 Vue 等等!Jest 的目标是在大部分 JavaScript 项目上实现开箱即用, 无需配置。从 it 到 expect - Jest 将整个工具包放在同一个 地方。好书写、好维护、非常方便。快速上手npm install --save-dev jest 下面我们开始给一个假定的函数写测试,这个函数的功能是两数相加。首先创建 sum.js 文件:function sum(a, b) { return
像素鱼丸 2022-02-22 JavaScript Node.js 1207
1,数据库中间表一般,使用下划线连接两个表作为中间表表名(table1_table2)。比如,表前缀是tb,表 tb_article 和 tb_tag 的中间表的表名就应该是 tb_article_tag。有时候可以把表命名为 "tb_article_tag_relation" 来突出一个表是中间表。2,在项目简单的时候,这种命名方式是没有问题的。如果复杂一点, 一个文章表 tb_post,和一个文章的类型表 tb_post_type,按照上面方式命名方式,就会出现 tb_post_post_type 这样的奇葩表名。看到有人使用双下划线“__”或者“_to_“连接两个表,比如“tb_post
像素鱼丸 2022-02-16 MySQL 4202
本文方法已经过时,官方最新方法:https://uniapp.dcloud.net.cn/tutorial/darkmode.htmlhttps://ask.dcloud.net.cn/article/36995简介:uniapp 暗黑模式适配主要包括三部分,一部分是应用中的页面,另一部分是特定功能弹出系统原生界面(如alert提示框)和安全区域外背景颜色,下面会详细说明分别如何适配。方法一:官方方法,只能适配 ios这个方法是官方给的,但暂时只能适配 ios,地址:https://ask.dcloud.net.cn/article/36995官方给的方法主要是靠 plus.navigator
像素鱼丸 2022-02-15 开发工具 5247
1 准备一个 1024 * 1024 的png图片,假设名字为 pic.png2 命令行 $ mkdir tmp.iconset,创建一个临时目录存放不同大小的图片3 把原图片转为不同大小的图片,并放入上面的临时目录# 全部拷贝到命令行回车执行,执行结束之后去tmp.iconset查看十张图片是否生成好sips -z 16 16 pic.png --out tmp.iconset/icon_16x16.png sips -z 32 32 pic.png --out tmp.iconset/icon_16x16@2x.png sips -z 32 32 pic.png -
像素鱼丸 2022-01-21 运维 1129
一,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
像素鱼丸 2022-01-19 Node.js 1300
简介curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。它的功能非常强大,命令行参数多达几十种。如果熟练的话,完全可以取代 Postman 这一类的图形界面工具。本文介绍它的主要命令行参数,作为日常的参考,方便查阅。内容主要翻译自《curl cookbook》。为了节约篇幅,下面的例子不包括运行时的输出,初学者可以先看我以前写的《curl 初学者教程》。不带有任何参数时,curl 就是发出 GET 请求。$ curl https://www.example.com上面命令向www.example.com发出 GET 请求,服务器返回
像素鱼丸 2022-01-13 开发工具 1372
一、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++ 扩展就可以直接使用,而不需要重新编译。
像素鱼丸 2021-12-30 Node.js 1013
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
像素鱼丸 2021-12-27 CSS JavaScript 835
njs 简介Nginx 是C语言开发的,很多人扩展 Nginx 的功能,并未使用 C 语言开发,更常见的是使用 Lua 扩展和定制 Nginx 服务。比较著名的是 OpenResty 使用 lua-nginx-module 模块运行 Lua 语言,并集成了大量精良的 Lua 库、第三方模块,可以方便地搭建能够处理超高并发、扩展性极高的 Web 服务。就像Atwood定律所描述一样,该来的又来了。现在最新版本的 Nginx 1.9.11+ 已经推出了 njs 模块,可以在 nginx 的配置中引入 JavaScript 脚本,从而实现一些更复杂的 nginx 配置功能。NJS 模块并不是运行一个
像素鱼丸 2021-12-25 JavaScript 运维 2251
SVG 的知识基础你可能学习过关于 SVG 的基础知识,并且能读懂 SVG 的结构。至少你知道:SVG 元素: svg , symbol , g , path SVG 属性: d, fill, stroke, stroke-width注意:从绘图工具中导出的 SVG 经常带着一些不必要的内容和标签等(其中 d 下面包含了清晰的路径数据),可以使用工具比如 SVGOMG ,然后比较一下处理前后哪些东西是移除或简化过的。移除颜色数据通常单色图标的源文件中, path 的颜色都是黑色 #000000。并且没有 fill 属性。如果我们在 SVG 文件中设置了 fill 属性,就不能通过 CSS
像素鱼丸 2021-12-24 CSS 1076
iconfont.cn 官方给我们讲解 iconfont 的实现原理。字体内部我们来看下一个字体的样子。我们可以通过一些软件打开字体,比如fontforge,fontlab。比如下面的方正大草字体:我们打开看下:可以看到“我”这个字对应的的图形就是我们在网页上看到的样子。另外注意左上角的unicode。是6211,也就是我们的另一种表现形式。再双击可以看到我这个图形的样子:其实就是一些路径。而这个路径可以用ai,ps,sketch等等来画,画完粘贴到这里。iconfont1.0所以我们就可以做一些事情了,我们可以去改造字体,把一个字对应的图形换成我们设计师设计的样子,处理好兼容性就成了我们ic
像素鱼丸 2021-12-24 CSS 1125
\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
像素鱼丸 2021-12-23 开发技巧 1518
进制 (system of numeration)进制也就是进位制。进行加法运算时逢X进一(满X进一),进行减法运算时借一当X,这就是X进制,这种进制也就包含X个数字,基数为X。十进制有 0~9 共10个数字,基数为10,在加减法运算中,逢十进一,借一当十。十进制(Decimalism)使用的数字都是由 0~9 共十个数字组成的,逢十进一,也因为只有 0~9 共十个数字,所以叫做十进制。 人类算数采用十进制,可能跟人类有十根手指有关。 数位有一定的意义,从右往左分别表示个位、十位、百位、千位……二进制(Binary)从十进制计数法类推,使用的数字只有 0、1两种,这就是二进制。例如,数字 0、
像素鱼丸 2021-12-23 开发技巧 915
蛮荒时期 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
像素鱼丸 2021-12-21 CSS 958
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的主要实现,它快速,易于
像素鱼丸 2021-12-17 CSS 967
项目地址: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
像素鱼丸 2021-12-15 Node.js 956
XSS:Cross Site Scrit 跨站脚本攻击(为与 CSS 区别,所以在安全领域叫 XSS),通常是指黑客通过“HTML注入”,篡改了网页,插入了恶意脚本,从而在用户浏览网页时,控制用户浏览器的一种方法。跨站已经不重要,现在叫做“HTML注入”可能更加合适,单因为历史原因XSS这个名字一直保留下来。一,输入检查1.1 格式检查比如用户注册时检查账户、电话号码、邮件和生日等信息,都有一定格式规范。比如 "lordwang" 是一个合法的用户名,而字符串 "lordwang';select..." 不是一个合法的用户名。某种意义上,这些都属于白名单,可以让大部分攻击无效。Node.js
像素鱼丸 2021-12-11 Node.js 927
随机推荐
Web 自定义组件
Node.js 实现 RBAC 权限模型
JavaScript 的历史
JavaScript Map 详解
medium-zoom,一款 JavaScript 图片缩放库
WordPress 添加 Favicon 图标的方法
Express 使用 cookie-parser 处理 cookies
JavaScript DOM 查找元素