JavaScript UMD 插件编写规范(修订)

UMD 的实现很简单,先判断是否支持 Node.js 模块格式(exports 是否存在),存在则使用 Node.js 模块格式。再判断是否支持 AMD(define 是否存在),存在则使用 AMD 方式加载模块。前两个都不存在,则将模块公开到全局(window 或 global)。编写 UMD 时有一些注意事项,如果不注意,会导致生产环境报错。 如何兼容 CommonJS, AMD, ...

Node.js 新特性:工作线程

2019 年 09 月 26 日 node.js 12.11.0 发布,工作线程(多线程)稳定。 单进程和单线程当一个 Node.js 的应用启动的同时,它会启动如下模块: 一个进程 一个线程 事件循环机制 JS 引擎实例 Node.js 实例 一个进程:process 对象是一个全局变量,可在 Node.js 程序中任意地方访问,并提供当前进程的相关信息。一个线程:单线程意味着在当前进...

HTML5 播放 RTSP/RTMP 方案

RTSPRTSP(Real-Time Stream Protocol)协议是一个基于文本的多媒体播放控制协议,属于应用层。RTSP 以客户端方式工作,对流媒体提供播放、暂停、后退、前进等操作。该标准由 IETF 指定,对应的协议是 RFC2326。 RTSP 传输的一般是 TS、MP4 格式的流,其传输一般需要 2~3 个通道,命令和数据通道分离。使用 RTSP 协议传输流媒体数据需要有专门...

NodeJS AOP 实践

早期接触 Java Spring 的时候,学习了 AOP 的思想,那么 JavaScript 是否可以使用类似的思想呢? const { around } = require("aspect-ts"); class MyClass { myFunction() { console.log("run myFunction"); } } const myClass = new...

修改 Ghost 的默认排序规则

系统并没有向用户提供排序规则的修改,于是看了源码,找到了修改的地方。 在 core/server/models/post.js 中 orderDefaultRaw: function () { return '' + 'CASE WHEN posts.status = \'scheduled\' THEN 1 ' + 'WHEN posts.statu...

mongodb 使用笔记

linux 下安装 mongodb下载二进制文件后,终端输入: # 不使用配制文件启动 ./bin/mongod -auth --dbpath=/data/mongodb/data --logpath=/data/mongodb/logs --logappend --port=27017 --fork 补充官方提供 deb 等二进制包,可以使用。 修改配制文件修改 /etc/mongod.c...

27 行 nodejs 实现请求转发

作为转发请求用的中间件,简单实用。比如做前后端分离开发的时候不需要后端实现 CORS 了。 const http = require("http"); const url = require("url"); http .createServer((request, response) => { const pathname = url.parse(request.url).p...

区块链学习:nodejs 实现一个基本区块链

区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法 。 区块链(Blockchain)是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术。区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)和...