Node
程序媛小小平
一名程序媛的笔记
展开
-
Knex: Timeout acquiring a connection. The pool is probably full. Are you missing a .transacting(trx)
Knex: Timeout acquiring a connection. The pool is probably full. Are you missing a .transacting(trx) call?原因:1. 用了postgresSql数据库,连接池满了导致;2. node版本问题解决:1. 切换node版本12,不要用node14版本nvm use 12...原创 2021-02-22 16:02:20 · 2459 阅读 · 0 评论 -
使用npm script同时启动多条命令concurrently
concurrently同时启动多个端口的服务。安装:npm install -D concurrentlynpm包地址:https://www.npmjs.com/package/concurrently配置package.json:"start": "concurrently \"npm run command1\" \"npm run command2\""运行npm run start...原创 2020-06-30 10:26:42 · 761 阅读 · 0 评论 -
微信域名防封
微信域名防封微信域名被封后通常会出现“已停止访问该网页”和“申请恢复访问”的按钮等信息。一般被封的原因有:被举报;有诱导分享信息;系统自动检测;微信的人工检测;一般域名被封后,不仅耗费成本和人力,而且也会减少用户量、提高推广率和收入等。解决方法:微信域名检测工具:检测域名是否被封,封了就换一个没有封的来进行访问;代码来编写一个域名防封工具;微信防封的原理:短链接 +...原创 2020-04-17 09:43:24 · 685 阅读 · 1 评论 -
NodeJs之events
events事件触发器。eventEmitter.on():用于注册监听器;eventEmitter.emit():用于触发事件;const EventEmitter = require('events');class MyEmitter extends EventEmitter {}const myEmitter = new MyEmitter();myEmitter.on('...翻译 2020-02-01 21:39:40 · 331 阅读 · 0 评论 -
NodeJs之error
Error错误。NodeJs应用程序一般会有四种错误:标准的JavaScript错误;由底层操作系统触发的系统错误;由应用程序代码触发的用户自定义的错误;AssertionError错误,当Node监测到不应该发生的异常逻辑时触发,这类错误通常来自assert模块;所有由Nodejs引起的Javascript错误与系统错误都继承自或实例化自标准的JavaScript类,且保证至...转载 2020-02-01 16:30:25 · 2413 阅读 · 0 评论 -
NodeJs之domain
domain域。简化了异步代码的异常处理,可以捕捉try catch无法捕捉的异常。引入const domain = require('domain')domain模块把处理多个不同的IO操作为一个组。当发生一个错误事件或抛出一个错误时,domain对象会被通知,不会丢失上下文环境,也不会导致程序错误立即退出、显示绑定和隐式绑定显示绑定:把不是在domain上下文中定义的变量,以...翻译 2020-01-29 11:43:30 · 1143 阅读 · 0 评论 -
NodeJs之dns
dns域名服务器。dns模块包含了两个不同类别的函数:1、使用底层操作系统工具执行名称解析但不一定执行任何网络通信的函数。此类别仅包含一个函数:dns.lookup()。const dns = require('dns');dns.lookup('iana.org', (err, address, family) => { console.log('地址: %j 地址族: ...转载 2020-01-20 17:44:50 · 555 阅读 · 0 评论 -
Nodejs之dgram
dgramdgram数据报提供了UDP数据包socket的实现。const dgram = require('dgram');创建dgram.Sockrt的新实例,不使用newconst server = dgram.createSocket('udp4');error发生错误时触发server.on('error', (err) => { console.log(`服务器...翻译 2020-01-19 16:46:15 · 3099 阅读 · 1 评论 -
NodeJs之crypto
cryptocrypto模块提供了加密脑功能,包括对OpenSSL的哈希、HMAC、加密、解密、签名以及验证功能的一整套封装。下面整理了一些平常经常用到的加密解密方法:const crypto = require('crypto');const assert = require('assert');1.exports.sha1Sign = function sha1Sign(src)...原创 2020-01-15 17:12:31 · 1445 阅读 · 0 评论 -
node开发编程所需
主要目前一直在用的一些,基于node前后端开发编程工具:VSCode框架:KoaExpress后端:node前端:VueReact数据库:Robo 3TNavicat PremiumRedismongoose数据操作:ES6lodashTypescripts接口编写规范:Restful Api消息队列:Rabbitmq监控部署:...原创 2020-01-10 11:01:07 · 111 阅读 · 0 评论 -
Nodejs之cluster
cluster集群单个Nodejs实例运行在单个线程中,为充分利用多核系统,需要启用一组Node进程处理负载任务。cluster允许建立一个主进程和若干个worker进程,由主进程监控和协调worker进程的运行。worker之间采用进程通信交换消息,cluster模块内置一个负载均衡。cluster集成两个方面:集成了child_process.fork方法创建node子进程的方式...翻译 2020-01-10 18:15:36 · 1038 阅读 · 0 评论 -
Nodejs之child_process
child_processchild_process提供了衍生子进程的能力。node单线程的问题就是会导致无法充分利用CPU等资源,通过child_process实现子进程,从而实现1个主进程(master),多个子进程的模式(工作进程)。创建异步的子进程child_process.exec(command[, options][, callback])执行的是非node程序,是一个...翻译 2020-01-10 15:17:52 · 6476 阅读 · 0 评论 -
chance随机字符串
Chance随机字符串生成插件,帮助减少编写自动化测试或其它任何需要随机数据时千篇一律的单调性。可以随机生成数字、名称、域名、地址、邮箱、时间等。是一个开源的软件,基于MIT开源协议。安装npm i chance使用import Chance from 'Chance'const chance = new Chance()const str = chance.string(...翻译 2020-01-08 10:35:06 · 316 阅读 · 0 评论 -
Node.js之Buffer
BufferBuffer类是作为Node API的一部分引入的,用于在TCP流、文件系统操作及其他上下文中与八位字节流进行交互。Buffer的大小在创建的时候确定,且无法更改;Buffer类在全局作用域中,所以无需引用require(‘buffer’);...翻译 2020-01-06 14:15:26 · 255 阅读 · 0 评论 -
qs
qs安全性的查询字符串解析和序列化字符串的库。安装npm i qs使用var qs = require('qs');var assert = require('assert'); var obj = qs.parse('a=c');assert.deepEqual(obj, { a: 'c' }); var str = qs.stringify(obj);assert.e...翻译 2019-12-31 16:38:38 · 895 阅读 · 0 评论 -
process.nextTick()、setTimeout()、setInterval()
1、setTimeout()单线程运行机制,同一时间只能做一件事。无论怎样,都是要等主线线程的流程执行完毕后才会进行,且按照setTimeout设置的顺序进行排队执行。不考虑setTimeout的位置顺序,总是要等主线程执行完毕后,才运行。setTimeout的第二个参数时间是相对的,如果说,主线程的运行时间,超过了这个时间,在执行setTimeout的时候,会忽略这个时间,直接进行执行。...原创 2019-12-27 14:48:46 · 956 阅读 · 0 评论 -
Node.js之async_hooks
async_hooks异步钩子;提供了一组API用来跟踪Nodejs的异步资源(asynchronous resources)的生命周期;特性:每个函数都会提供一个上下文,为async scope(node为每个函数都提供了一个async scope);每个async scope都有一个asyncId标志,最外层的asyncId是1,每个异步资源在创建时asyncId是全量递增的;同...原创 2019-12-19 09:20:33 · 501 阅读 · 0 评论 -
Node.js之assert
assert断言模块,断言测试、用于测试不变量;发现代码问题、定位问题;对代码的可维护性、代码重构及后期功能扩展有重要意义;assert.AssertionError类表明断言的失败,assert所有的错误都是AssertionError类的实例。严格模式:严格相等和不相等判断严格相等满足‘===’assert.deepEqual(actual, expected[, me...原创 2019-12-18 14:42:25 · 186 阅读 · 0 评论 -
发布自己的npm包
01 注册自己的npm账号npm官网:https://www.npmjs.com02 初始化发布的项目新建一个文件夹:aliCloud ;登录自己的npm账号 ;初始化项目;发布包到npm官网上(注意:每次发布包到官网上,比如做了某些修改等,package.json里面的version都要更新一个版本哦,不然会失败报错);查看最新的包的版本 查看所有包的版本;npm login...原创 2019-11-07 16:25:46 · 170 阅读 · 0 评论 -
Crontab
01 CrontabLinux中,定期执行程序的命令,精确到分,秒的话需要自己手动写脚本。Cron Job:被周期性执行的任务Cron Table:被周期性执行的列表。日志文件: ll /var/log/cron*编辑文件:vim /etc/crontab 进程:ps -ef | grep crond ==> /etc/init.d/crond restart...翻译 2019-11-07 15:43:59 · 782 阅读 · 0 评论 -
Varnish
在前端已经设置了缓存时间戳的情况下,后端数据库也已经更新,但是请求接口获取的数据仍然是老数据,排除了304重定向的问题,发现是服务器Varnish设置了缓存。Varnish是一个http反向代理的缓存,高性能,轻量级,web应用程序加速器。它通过缓存服务端的输出来减少你的网站/应用/API的加载时间,从而提高性能。默认监听TCP80端口。特点:基础内存进行缓存,重启后数据消失;利用虚...转载 2019-11-07 15:35:10 · 509 阅读 · 0 评论 -
Protobuf(proto3)
1. Protobuf(proto3)protocol buffer是google的语言中立的、平台中立的,可扩展机制的,用于序列化结构化数据。对比XML,更小、刚快、更简单。简单的设计协议,通过自带工具转换成对应的语言代码,协议是二进制协议,设计时只需要描述各个类的关系,简单明了。定义消息类型syntax = "proto3"; // 指定使用proto3的语法,否则默认是pr...转载 2019-11-06 14:16:42 · 809 阅读 · 0 评论 -
gRPC
什么是gRPCPRC(Remote Procedure Call 远程过程调用)框架实际是提供了一套机制,使得应用程序之间可以进行通信。google开发,一款语言中立、平台中立、开源的远程过程调用(RPC)系统.gRPC里客户端应用可以像本地对象一样直接调用另一台不同机器上服务端应用的方法,使得能够更容易创建分布式应用和服务。基于Http2.0且依赖protobuf定义一个服务,指定...转载 2019-11-05 10:58:01 · 600 阅读 · 0 评论 -
【tree-cli 项目目录自动创建】
项目搭建过程中或者git使用中,会使用README.md文件进行创建项目的目录,自动构建项目目录插件的使用npm install -g tree-cli// -l pathLeveltree -l 2// -o 输出文件tree -l 2 -o out.txt// -d 展示目录tree -l 2 -o out.txt -d// --ignore 忽略的文件tree -l...转载 2019-09-19 09:39:25 · 140 阅读 · 0 评论