最新文章
通常异常使用方式:try {
JSON.parse(json);
} catch (e) {
// TODO
}
但是这对于异步编程而言并不一定适应,下面的代码 catch 不会捕捉到异常,并导致程序退出:async function action(){
setTimeout(()= {
throw new Error("发生了错误");
}, 1000);
}
try {
action();
} catch (e){
console.log('catch: ', error.message);
}
异步I/O的实现主要包含两个阶段:提交请求和处理结果。这
当内存中无法一次装下需要处理的数据时,或者一边读取一边处理更加高效时,我们就需要用到数据流。NodeJS中通过各种 Stream 来提供对数据流的操作。官方文档: http://nodejs.org/api/stream.html小文件拷贝fs.writeFileSync(dst, fs.readFileSync(src));
大文件拷贝上边的程序拷贝一些小文件没啥问题,但这种一次性把所有文件内容都读取到内存中后再一次性写入磁盘的方式不适合拷贝大文件,内存会爆仓。对于大文件,我们只能读一点写一点,直到完成拷贝。因此上边的程序需要改造如下。fs.createReadStream(src).pi
最终我选择使用了 sharp https://github.com/lovell/sharp基本用法:var images = require("images");
images("input.jpg") //Load image from file
//加载图像文件
.size(400) //Geometric scaling the image to 400 pixels width
//等比缩放图像到400像素宽
.draw(images("l
管理员可以通过分析nginx的错误日志手动添加白名单规则。白名单规则配置naxsi核心规则文件naxsi_core.rules需要在nginx配置文件nginx.conf下的http部分导入,而naxsi白名单规则文件naxsi_whitelists.rules一般在nginx配置文件nginx.conf下的location部分导入,可放置在CheckRules语句之前。location部分对应的配置内容如下:include naxsi_whitelists.rules;#导入白名单规则
SecRulesEnabled;
DeniedUrl "/RequestDenied";
Check
使用 tag__in 可以调用有特定标签的文章。//获取一个标签的文章 根据标签别名获取有这个标签的文章:
$query = new WP_Query( 'tag=cooking' );
//根据标签 ID 获取有这个标签的文章:
$query = new WP_Query( 'tag_id=13' );
//获取多个标签的文章 根据标签的别名获取带有这几个标签其中一个的文章:
$query = new WP_Query( 'tag=bread,baking' );
//根据标签别名获取同时拥有几个标签的文章:
$query = new WP_Query( 'tag=bread+baking+
Scoped Packages 范围包假如我们有一个项目需要使用 npm init 进行初始化,但是在 npm 注册的包名是唯一的,好名字都被别人起了,怎么办呢?之前很多人都是使用类似 koa-router、vue-cli 中线的方式。 还有类似这样的:@koa/router,这种形式叫做 Scoped Packages 范围包。@somescope/somepackagename每个npm用户可以有自己的 somescope使用的时候大概如下:var router = require("@koa/router");
参考https://nitayneeman.com/posts/under
扩容相关文档在这里。https://help.aliyun.com/document_detail/35095.html扩容的流程分三大步。第一步,创建磁盘快照。第二步,购买磁盘。第三步,在CentOS中增加已经新增容量。购买磁盘的时候注意,最好能勾选在线扩容。否则的话,新增磁盘还需要重启服务器。现在主要说第三步,fdisk -lu查看实例的云盘情况,会显示扩容完的磁盘大小df -Th确认已有分区的文件系统类型和磁盘大小,在ECS实例内分区和文件系统并未扩容。growpart /dev/vda 1此示例以扩容系统盘为例,/dev/vda和1之间需要空格分隔。如果需要扩容其他分区,请根据实际情况
一,ngx_http_limit_conn_module 模块,限制单IP并发连接数ngx_http_limit_conn_module模块用于限制连接数量,特别是来自单个IP地址的连接数量。并非所有的连接都被计数。只有当服务器处理了请求并且已经读取了整个请求头时,连接才被计数。示例配置:http {
limit_conn_zone $binary_remote_addr zone=addr:10m;
...
server {
...
location /download/ {
limit_conn addr 1;
}
}
li
macOS 安装 nginxbrew install nginx
cp nginx.conf.default nginx.conf
cd www.conf.default www.conf
安装PHP 参考:https://javascript.net.cn/articles/582找到PHP的位置/usr/local/php7
修改 ~/profilePATH="/usr/local/php7/bin:/usr/local/php7/sbin:$PATH"
开启php-fpm
关闭 php-fpmsudo killall php-fpm
如果遇到上传文件权限不够nginx open() cl
知识回顾:open_basedir是php.ini中的一个配置选项它可将用户访问文件的活动范围限制在指定的区域,假设open_basedir=/home/wwwroot/home/web1/:/tmp/,那么通过web1访问服务器的用户就无法获取服务器上除了/home/wwwroot/home/web1/和/tmp/这两个目录以外的文件。注意用open_basedir指定的限制实际上是前缀,而不是目录名。举例来说: 若"open_basedir = /dir/user", 那么目录 "/dir/user" 和 "/dir/user1"都是可以访问的。所以如果要将访问限制在仅为指定的目录,请用斜
源安装和编译安装的区别yum 或 dnf 安装:从yum安装来说吧,yum相当于是自动化帮你安装,你不用管软件的依赖关系,在yum安装过程是帮你把软件的全部依赖关系帮你傻瓜式的解决了。而且现在Centos7的服务启动已经换成systemctl命令来控制了。通过yum安装会帮你自动注册服务,你可以通过systemctl start xxx.service启动服务,方便快捷。但是缺点是yum安装你没办法干预,安装的目录也是分散的。你可能要执行whereis或者find命令去找yum安装的路径。有时候yum安装的软件版本比较低,你不得不去找其他的yum源,或者rpm包。源码编译安装:源码编译在安装过
http://nginx.org/ NGINX官网创建文件夹mkdir /software
cd /software
下载当前最新的稳定版wget https://nginx.org/download/nginx-1.18.0.tar.gz
安装必要插件yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
简介:gcc 它可以编译 C,C++,Ada,Object C和Java等语言pcre pcre-devel pcre是一个perl库,包括perl兼容的正则表达式库,nginx的http模块
安装包的时候提示如下:gyp WARN EACCES user "nobody" does not have permission to access the dev dir
或者gyp WARN EACCES user "root" does not have permission to access the dev dir
解决方法:npm install xxxx -g --unsafe-perm
有时候可以先执行:npm cache clean --force
参考:https://javascript.net.cn/article?id=657
这个属性可以取消 pading 和 border 宽度对盒装模型的影响。语法box-sizing: content-box|border-box|inherit;content-box 这是由 CSS2.1 规定的宽度高度行为。宽度和高度分别应用到元素的内容框。在宽度和高度之外绘制元素的内边距和边框。border-box 为元素设定的宽度和高度决定了元素的边框盒。就是说,为元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制。通过从已设定的宽度和高度分别减去边框和内边距才能得到内容的宽度和高度。inherit规定应从父元素继承 box-sizing 属性的值。
未验证成功firewall-cmd --direct --add-rule ipv4 filter INPUT_direct 0 -p tcp --dport 22 -m state --state NEW -m recent --set
firewall-cmd --direct --add-rule ipv4 filter INPUT_direct 1 -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 30 --hitcount 6 -j REJECT --reject-with tcp-reset
AI 制作的图标上传到 iconfont 以后丢失描边,就是描边不见了,只剩下填充色。解决方法就是选择描边对象,然后在菜单栏选择“对象- 扩展- 确定”,就可以把路径转换成形状。
在使用git的时候,有些文件是不需要上传的,所以就可以修改 .gitignore,如果在创建.gitignore文件之前就push了项目,那么即使你在.gitignore文件中写入新的过滤规则,这些规则也不会起作用,Git仍然会对所有文件进行版本管理。如果只是取消跟踪git rm -r --cached . //对所有文件都取消跟踪,不删除本地文件
git rm -r --f . //对所有文件都取消跟踪,删除本地文件
git rm --cached text1.txt //删除text1.txt的跟踪,并保留在本地。
git rm --f text1.tx
process.env 介绍process(进程)对象是一个 global (全局变量),提供有关信息,控制当前 Node.js 进程。作为一个对象,它对于 Node.js 应用程序始终是可用的,无需使用 require()。process.env 属性会返回包含用户环境的对象。文档:http://nodejs.cn/api/process.html#process_process_env很明显的一个使用场景,依靠这个我们就可以给服务器上打上一个标签。这样的话,我们就能根据不同的环境,做一些配置上的处理。如何配置环境变量Windows临时配置直接在cmd环境配置即可,查看环境变量,添加环境变量
一,简介fail2ban是用python编写的开源软件,fail2ban 通过扫描日志文件,利用正则式匹配登录错误的IP地址,然后可以将IP地址列入防火墙中,同时还能给我发送 email 以提醒我有哪个IP地址被ban了。二,安装 Fail2banFail2ban软件包包含在默认的CentOS 8存储库中。要安装它,请以root或具有sudo特权的用户身份输入以下命令:sudo dnf install fail2ban
安装完成后,启用并启动Fail2ban服务:$ sudo systemctl enable --now fail2ban
Created symlink /etc/syst
Git 鼓励你使用分支完成某个任务,合并后再删掉分支,这和直接在 master 分支上工作效果是一样的,但过程更安全。创建 dev 分支我们创建dev分支,然后切换到dev分支:$ git checkout -b dev
Switched to a new branch 'dev'
git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:$ git branch dev
$ git checkout dev
Switched to branch 'dev'
然后,用git branch命令查看当前分支:$ git branch
* dev
master
所有标签