随笔分类 - nodejs
摘要:我们都知道javascript是单线程的,node.js是一个基于Chrome V8 引擎的 javascript 运行时环境,注意 node.js 不是一门语言,别搞错了。 javascript为什么是单线程的,这么做有什么好处? 因为历史原因,js的出现主要是为了解决页面的交互和操作DOM,如果
阅读全文
摘要:router.get('/lock', async (ctx, next) => { const resource = 'locks:account:11111'; const ttl = 8000; const value = uuid.v1(); const startTime = moment
阅读全文
摘要:bull.js const Queue = require('bull'); const queue = new Queue('nike', { redis: { port: 6379, host: '127.0.0.1', db: 3, password: null }, prefix: 'nik
阅读全文
摘要:node-cron https://github.com/kelektiv/node-cron node-schedule https://github.com/node-schedule/node-schedule agenda https://github.com/agenda/agenda b
阅读全文
摘要:场景 实际业务中对于定时任务的需求是不可避免的,例如,订单超时自动取消、每天定时拉取数据等,在Node.js中系统层面提供了setTimeout、setInterval两个API或通过node-schedule这种第三方库来实现。通过这种方式实现对于简单的定时任务是ok的,过于复杂的、可用性要求较高
阅读全文
摘要:后端代码 async downloadFile() { const { ctx } = this; const body = ctx.request.body; const { id } = body; const fileRecord = await ctx.model.File.findOne(
阅读全文
摘要:详情见 https://github.com/fatedier/frp/blob/master/README_zh.md#%E6%9E%B6%E6%9E%84 下载地址 https://github.com/fatedier/frp/releases 例子: client: frpc.ini [co
阅读全文
摘要:const MongoClient = require('mongodb').MongoClient; const url = 'mongodb://user:password@localhost:27017/?authMechanism=SCRAM-SHA-1&authSource=database'; // Database Name const dbName = 'aaaa'; //...
阅读全文
摘要:一、新建一个log4js.js配置文件 二、新建log4Util.js 三、再app.js引入log4Util.js
阅读全文
摘要:const util = require('util'); /** * 链表节点类 */ class Node { constructor (ele) { this.ele = ele; this.next = null; this.prev = null; } } /** * 链表类 */ class NodeList { constructor (...
阅读全文
摘要:详见:https://www.cnblogs.com/chyingp/p/pm2-documentation.html
阅读全文
摘要:class Singleton { constructor() { this.conn = this.connect(); } static getInstance() { if (!Singleton.instance) { Singleton.instance = new Singleton(); ...
阅读全文
摘要:第一种 /** * 链表节点类 */ class Node { constructor(ele) { this.ele = ele; this.next = null; } } /** * 链表类 */ class NodeList { constructor(ele) { this.head =
阅读全文
摘要:JavaScript的学习零散而庞杂,因此很多时候我们学到了一些东西,但是却没办法感受到自己的进步,甚至过了不久,就把学到的东西给忘了。为了解决自己的这个困扰,在学习的过程中,我一直试图在寻找一条核心的线索,只要我根据这条线索,我就能够一点一点的进步。 前端基础进阶正是围绕这条线索慢慢展开,而事件循
阅读全文
摘要:关于 Express 优点。Express 的优点是线性逻辑:路由和中间件完美融合,通过中间件形式把业务逻辑细分,简化,一个请求进来经过一系列中间件处理后再响应给用户,再复杂的业务也是线性了,清晰明了。 再说缺点。Express 是基于 callback 来组合业务逻辑。Callback 有两大硬伤
阅读全文
摘要:https://www.cnblogs.com/younger-plant/p/5547843.html https://github.com/ZhouBox/express_api_4.x_chinese/blob/master/Express_4.x_API_Chinese.md
阅读全文
摘要:中间件概念 在NodeJS中,中间件主要是指封装所有Http请求细节处理的方法。一次Http请求通常包含很多工作,如记录日志、ip过滤、查询字符串、请求体解析、Cookie处理、权限验证、参数验证、异常处理等,但对于Web应用而言,并不希望接触到这么多细节性的处理,因此引入中间件来简化和隔离这些基础
阅读全文
摘要:<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv
阅读全文
摘要:Node.js的事件轮询Event Loop原理解释 事件轮询主要是针对事件队列进行轮询,事件生产者将事件排队放入队列中,队列另外一端有一个线程称为事件消费者会不断查询队列中是否有事件,如果有事件,就立即会执行,为了防止执行过程中有堵塞操作影响当前线程读取队列,事件消费者线程会委托一个线程池专门执行
阅读全文
摘要:1、浏览器端的事件驱动机制 javascript 在浏览器端运行是单线程的,这是由浏览器决定的,这是为了避免多线程执行不同任务会发生冲突的情况。也就是说我们写的javascript 代码只在一个线程上运行,称之为主线程(HTML5提供了web worker API可以让浏览器开一个线程运行比较复杂耗
阅读全文