这套前端监控系统用到的技术栈是:React+MongoDB+Node.js+Koa2.将性能和错误量化.因为自己平时喜欢吃菠萝,所以就取名叫菠萝系统.其实在很早以前就有这个想法,当时已经实现了前端的参数搜集,只是后台迟迟没有动手,也就拖着. 目前完成的还只是个雏形,仅仅是搜集了错误和相关的性能参数. 后台样式采用了封装过的matrix. 分析功能还很薄弱,只是做了简单的演示,并且各种基础功能还有待完善. 后面打算强化数据分析,并且还要实现错误的回放机制,思路的话以前也调研过,参考之前的一篇文章.…
一.Buffer Buffer是一种Node的内置类型,不需要通过require()函数额外引入.它能读取和写入二进制数据,常用于解析网络数据流.文件等. 1)创建 通过new关键字初始化Buffer对象的方式已经被废弃,下面的代码都已经过时. new Buffer(array) new Buffer(arrayBuffer[, byteOffset[, length]]) new Buffer(buffer) new Buffer(size) new Buffer(string[, encod…
一.文件系统 fs模块可与文件系统进行交互,封装了常规的POSIX函数.POSIX(Portable Operating System Interface,可移植操作系统接口)是UNIX系统的一个设计标准.fs模块提供了多个操作目录和文件的方法,大多会有同步和异步两种版本,同步的方法名称会以Sync为后缀. 1)目录处理 fs模块的readdir()方法可异步的读取目录内容,回调函数包含两个参数,第一个是错误对象,第二个是一个包含文件名称的数组,对应的同步方法是readdirSync().在下面…
短链顾名思义是一种很短的地址,应用广泛,例如页面中有一张二维码图片,包含的是一个原始地址(如下所示),如果二维码中的链接需要修改,那么就得发代码替换掉. 原始地址:https://github.com/pwstrick/daily 短链:http://t.cn/4fYKXF 但如果二维码图包含的是一条短链,那么只要修改短链中的映射关系,就能不发代码了.当然了,前提是有一套短链系统维护着他们之间的关系,下图是列表和新增的界面. 前端界面的代码省略了,直接看短链用Node.js实现的后端代码. 一.…
在日常的业务开发中,会包含许多的业务规则,一般就是用if-else硬编码的方式实现,这样就会增加逻辑的维护成本,若无注释,可能都无法理解规则意图. 因为一旦规则有所改变,那么就需要修改代码再发布代码,而在日常的开发中唯一不变的就是变化,修改规则是很常见的. 规则引擎的作用就是将决策逻辑从业务逻辑中抽离出来,使得两者可以独立于彼此,便于集中管理,减少硬编码的成本和风险,在不重启服务的情况下快速响应需求的变化. 规则本质上就是一个函数,包括n个输入(决策因子),一个输出(结果)和一段计算规则三部分.…
本次分析的KOA版本是2.13.1,它非常轻量,诸如路由.模板等功能默认都不提供,需要自己引入相关的中间件. 源码的目录结构比较简单,主要分为3部分,__tests__,lib和docs,从名称中就可以了解到. __tests__是单元测试,lib是核心代码,docs是文档.在lib目录中只有4个文件. ├── __tests__ ------------------------ 单元测试 ├── docs ----------------------------- 文档 ├── lib ---…
Node.js 不是一门语言,而是一个基于 V8 引擎的运行时环境,下图是一张架构图. 由图可知,Node.js 底层除了 JavaScript 代码之外,还有大量的 C/C++ 代码. 常说 Node.js 是单线程的,但这个单线程是指处理 JavaScript 的主线程是单的,像 I/O 任务都是多线程处理的. 一.准备 要开发 Node.js 应用,首先需要下载安装 Node.js,点击下一步下一步就可完成. 值得一提的是,在官网中,还配套了一份 50 多篇的入门教程,每篇都不长,蛮通俗易…
Node.js 官方提供了 Cluster 和 Child process 创建子进程,通过 Worker threads 模块创建子线程.但前者无法共享内存,通信必须使用 JSON 格式,有一定的局限性和性能问题.后者更轻量,并且可以共享内存,通过传输 ArrayBuffer 实例或共享 SharedArrayBuffer 实例来做到这一点,即数据格式没有太多要求.但是要注意,数据中不能包含函数. Worker threads 从 Node V12 开始成为正式标准,其对于执行 CPU 密集型…
一.自定义 创建一个空目录,然后通过npm init命令初始化package.json文件,并按提示输入相关信息或直接回车使用默认信息,生成的内容如下所示. { "name": "pwct", "version": "1.0.0", "description": "命令行工具测试", "main": "index.js", "script…
低代码开发平台(LCDP)是无需编码(0代码)或通过少量代码就可以快速生成应用程序的开发平台.让具有不同经验水平的开发人员可以通过图形化的用户界面,通过拖拽组件和模型驱动的逻辑来创建网页和移动应用程序. 低代码的核心是呈现.交互和扩展,其中呈现和交互需要借助自行研发的渲染引擎实现.而此处的扩展特指物料库,也就是各类自定义的业务组件,有了物料库后才能满足更多的场景. 在 4 个月前研发过一套可视化搭建系统,当时采用的是生成代码的方式渲染页面.而本次研发采用的则是运行时渲染,功能比较基础,基于Rea…