最新文章
介绍koa-body 是一个可以帮助解析 http 中 body 的部分的中间件,包括 json、表单、文本、文件等。还有一个常用的类似扩展 koa-bodyparser对比其中,koa-bodyparser 不可以直接处理文件,需要上传文件的时候,还需要引用另外一个中间件 koa-multer,项目地址和使用数量如下:koa-body Used by 31.6khttps://github.com/dlau/koa-bodykoa-bodyparser Used by 73.1k https://github.com/koajs/bodyparser代码示例// 初始化
const koa
简介
Node.js 的 JSON Web Token 模块有很多,我选择使用 jsonwebtoken。
项目地址: https://www.npmjs.com/package/jsonwebtoken
安装
npm install jsonwebtoken --save
用法
const jwt = require("jsonwebtoken")
const secret = "some word";
let payload = {};
payload.data = data || {}; //token 中包含的数据
payload.ctime = (new Date(
一,Fetch API 介绍
Fetch API提供了一个 JavaScript 接口,用于访问和操纵HTTP的请求和响应等。提供了一个全局 fetch()方法来跨网络异步获取资源。
fetch()是 XMLHttpRequest 的升级版,用于在 JavaScript 脚本里面发出 HTTP 请求。
二,基本用法:
fetch('https://test.com/api/info')
.then(response = response.json())
.then(json = console.log(json))
.catch(err = console.log('Reque
SSH 密码登录#!/usr/bin/expect -f
set password "123456"
set timeout -1
spawn ssh user@xxx.xxx.xxx.xx
expect "*assword:*"
send "$password\r"
expect "Last*"
interact
SSH 证书登录#!/usr/bin/expect -f
set password "123456"
set timeout -1
spawn ssh -i /Users/user/Cert/id_rsa user@xxx.xxx.xxx.xx -p 3002
简介
Nodemailer 是一个简单易用的 Node.JS 邮件发送模块(通过 SMTP,sendmail,或者 Amazon SES),支持 unicode,你可以使用任何你喜欢的字符集。
安装
npm install nodemailer --save
代码示例:
const nodemailer = require('nodemailer');
const config = {
smtp: {
host: "smtp.163.com",
username: "123123123@163.com",
password: "123123123"
}
};
常用的Node.js图片处理模块,有node-image、sharp和jimp。node-image很轻量,但是处理gif有点问题,更新还有点慢了。sharp跨操作系统部署的时,常常还需要编译一下。所以,jimp也是一个很好的选择。介绍:An image processing library for Node written entirely in JavaScript, with zero native dependencies.看这个官方介绍也说了,完全使用Node写的的库,无原生依赖。 支持图片类型bmp、gif、jpeg、png和tiff。安装:npm install --save j
简介:cheerio 是一个HTML解析器,cheerio实现了核心jQuery的子集。常用来解析采集来的HTML数据。安装:npm install cheerio
基础使用:const cheerio = require('cheerio');
var htmlString = ` ul id="fruits"
li class="apple" 苹果 /li
li class="orange" 橙子 /li
li class="pear" 梨 /li
/ul `;
$ = cheerio.load(htmlString);
$('.apple', '#fruits'
nginx 错误日志 nginx accept() failed (24: Too many open files)
原因是 Linux 设置了软硬文件句柄和打开文件的数目,你可以使用 ulimit 命令来查看这些限制。什么是ulimit?ulimit 描述符用于限制用户打开的文件数量,让单个用户不至于打开较多的文件,导致系统奔溃或者资源不足的情况。Linux中一切皆文件,所以文件的含义是很广的。unlimit 还可以限制所创建的内核文件的大小、进程数据块的大小、Shell 进程创建文件的大小、内存锁住的大小、常驻内存集的大小、打开文件描述符的数量、分配堆栈的最大大小、CPU 时间、单个用户
nginx.confload_module modules/ngx_http_js_module.so;
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
修改配置文件:/etc/ssh/sshd_config#ClientAliveInterval 0
#ClientAliveCountMax 3
ClientAliveInterval 60
ClientAliveCountMax 3
ClientAliveInterval 0指定了服务器端向客户端请求消息的时间间隔, 默认是0, 不发送。设置60表示每分钟发送一次, 客户端响应, 就保持连接了。ClientAliveCountMax 3表示服务器发出请求后客户端没有响应的次数达到3次以后, 就自动断开。
1. 登录到服务器,生成 SSH 的密钥和公钥
ssh-keygen -t rsa
将公钥复制到 authorzied_keys 文件
cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
修改 authorized_keys 权限为 644,.ssh 权限为700
chown -R 700 ~/.ssh
chown -R 644 ~/.ssh/authorized_keys
ls -a .ssh #查看用户权限
备注,生成的证书不留空证书密码的话,别人有证书也无法登录。
然后,下载服务器上生成的 ~/.ssh/id_rsa 私钥文件到本地。
2. 修改服
正常情况下载视频:ffmpeg -i m3u8-path -c copy OUTPUT.mp4
ffmpeg -i m3u8-path -vcodec copy -acodec copy OUTPUT.mp4
ffmpeg -i https://test.com/playlist.m3u8 -c copy OUTPUT.mp4
下载加密的 m3u8:1. playlist.m3u8的文件#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:5
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MEDIA-SEQUENC
chmod 修改项目文件夹的权限以后,git status 发生了大量变化的文件。原因是 Git 不仅能够管理文件的版本,而且能够管理对文件的访问权限。通常,一个文件的访问权限可以分为xrw,这些属性也被纳入到Git库的管理。修改文件的访问权限,也是对git库中文件的 modify,执行git status 会看到变化。filemode 简介Git对文件的访问权限的管理与配置选项core.filemode有关。core.filemode选项默认true,即区分文件的执行权限,校验Git的Index中和工作目录中的文件权限。查看 filemode 选项git config --get core.
ctx.request.ip请求远程地址。 当 app.proxy 设置为 true 时,支持 X-Forwarded-Host。1, 在 Nginx 反向代理配置 proxy_pass 的部分添加这样一行。 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;2, 在 Koa 应用里设置 app.proxy 为 true。X-Forwarded-For 定义X-Forwarded-For (XFF) 在客户端访问服务器的过程中如果需要经过HTTP代理或者负载均衡服务器,可以被用来获取最初发起请求的客户端的IP地址,这个消息首
npm install sharp --unsafe-perm
sharp@0.28.1 install /space/www/cn_restfulapi/node_modules/sharp
(node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)
sharp: Downloading https://github.com/lovell/sharp-libv
SELECT id,title FROM tb_item GROUP BY id
SELECT id,title,count(*) AS counter FROM tb_item GROUP BY id
counter 实际上是每组的计数统计分组后的数据,应该使用这样的子查询:select count(*) from (select count(*) FROM service GROUP BY name,service) t
实例:var replacements = {tags:"11,12,13"}
var sql = `
SELECT id,tags,title,r.*
一、concat()函数concat(str1, str2,...)
将多个字符串连接成一个字符串。返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为null。例子:select concat (id, title, counter) as info from tb_user;
select concat (id, ',', title, ',', counter) as info from tb_user;
二、concat_ws()函数concat_ws(separator, str1, str2, ...)
和concat()一样,将多个字符串连接成一个字符
MySQL手册中find_in_set函数的语法:FIND_IN_SET(str,strlist)
str 要查询的字符串strlist 字段名 参数以”,”分隔 如 (1,2,6,8)查询字段(strlist)中包含(str)的结果,返回结果为null或记录假如字符串str在由N个子链组成的字符串列表strlist 中,则返回值的范围在 1 到 N 之间。 一个字符串列表就是一个由一些被 ‘,’ 符号分开的子链组成的字符串。如果第一个参数是一个常数字符串,而第二个是type SET列,则FIND_IN_SET() 函数被优化,使用比特计算。 如果str不在strlist 或strlist
1,cheerio 获取一个文本节点,该节点没有html标签,比如想获取html中的“猪突猛进” a href="#"
猪突猛进
span 2021年3月12日 /span
/a
var text = $("#itemInfo").contents().filter(function () {
return this.nodeType === 3;
}).text();
2,Node.js 获取 IP V6 内容出现超时问题的解决方法本地是IP V4,获取IP V6内容的时候,提示:Error: connect ETIMEDOUT 172.67.21
显示所有重复数据分组SELECT
origin_id
FROM
topk88_product
GROUP BY origin_id
HAVING count(*) 1
删除所有重复DELETE FROM topk88_product
WHERE origin_id IN (
SELECT
origin_id
FROM
topk88_product
GROUP BY origin_id
HAVING count(*) 1
);
提示:You can't specify tar
所有标签