摘要:
简单的介绍nodejs中的TCP服务创建及与客户端的数据交互,重点介绍了如何解决Nagle算法导致的粘包和不完整的数据包问题。 阅读全文
摘要:
什么是流? 可读流于可写流 双工流于转换流 背压机制与文件流模拟实现 一、什么是流? 关于流的概念早在1964年就有记录被提出了,简单的说“流”就是控制数据传输过程的程序,比如在那篇记录中有这样的描述: “在编写代码时,我们应该有一些方法将程序像连接水管一样连接起来 -- 当我们需要获取一些数据时, 阅读全文
摘要:
node为什么要使用异步I/O 异步I/O的技术方案:轮询技术 node的异步I/O nodejs事件环 一、node为什么要使用异步I/O 异步最先诞生于操作系统的底层,在底层系统中,异步通过信号量、消息等方式有广泛的应用。但在大多数高级编程语言中,异步并不多见,这是因为编写异步的程序不符合人习惯 阅读全文
摘要:
发布订阅模式的思想是在观察者模式的基础上演变而来,在观察者模式中客户端监听到对象某个行为就触发对应任务程序。而在发布订阅模式中依然基于这个核心思想,所以有时候也会将两者认为是同一种设计模式。它们的不同之处在于观察者模式中的客户端与服务端是相互耦合的,即服务端对象直接绑定客户端的监听任务,客户端直接绑 阅读全文
摘要:
CommonJS规范回顾与nodejs模块机制基础内容 基于VS调式断点了解node模块加载编译源码流程 基于nodejs的VM模块手动模拟实现模块加载 node的模块编译 C/C++扩展模块 包与NPM 一、CommonJS规范回顾与nodejs模块机制基础内容 在深入了解nodejs模块机制之前 阅读全文
摘要:
文件操作的基础知识 文件操作常用API 大文件操作 目录操作的常用API 一、文件操作的基础知识 1.1文件权限位:当前用户/用户组对文件是否具有完全控制权限/未指定权限(默认)(F/0)、写入权限(W/2)、读取权限(R/4)、执行权限(X/1)。 在命令行工具中可以通过cacls/ls -l指令 阅读全文
摘要:
什么是Buffer Buffer的结构 Buffer对象API解析 解决Buffer拼接时导致的乱码问题 Buffer的性能 一、什么是Buffer? 首先Buffer是nodejs全局上的一个內置模块,可以直接在不用require引入就可以直接调用的模块。 Buffer的作用就是让JavaScri 阅读全文
摘要:
v8的内存限制 v8的垃圾回收机制 高效使用内存与内存指标 内存泄漏与内存泄漏排查 大内存应用 一、v8的内存限制 1.1为什么要关注内存? 在JavaScript中,它与Java一样都是由垃圾回收机制来进行自动内存管理,这使得开发者不需要像C/C++开发那样时刻关注内存的分配和释放问题。所以在开发 阅读全文
摘要:
这是一篇node入门级解析全局对象Global的博客,相对于官方文档这篇博客主要将各种API按照功能特性分类,不是官方文档那样基于字母顺序分类。另外详细通俗的解析了进程模块Process的API,这边博客可以保证你清晰明了的读懂Node文档,特别时按照功能分类可以瞬间就在杂乱无章的API中理清头绪。 阅读全文
摘要:
nodejs是什么? nodejs的架构模式以及优缺点 nodejs异步IO nodejs事件驱动 nodejs单线程 nodejs应用场景 一、nodejs是什么? 1.1nodejs是一个开源的、跨平台的JavaScript的运行环境。就像java的运行环境JRE一样,比如JRE自带的java基 阅读全文
摘要:
实现控制台输入输出 实现文件读写操作 全原生实现一个简单的脚手架工具 实现vue-cli2源码 一、实现控制台输入输出 关于控制台的输入输出依然是基于node进程管理对象process,在process上有三个基于流的对象分别是:标准输入流(stdin)、标准输出流(stdout)、标准错误(std 阅读全文
摘要:
了解NPM安装模块时与项目配置文件中的bin配置发生了什么 了解nodejs在控制台中的运行环境及上下文 基于自定义命令集工具集成Yeoman 一、NPM模块安装内幕与nodejs控制台运行环境 1.1NPM模块安装内幕 当我们使用npm install 安装NPM模块时你会思考它到底发生了什么吗? 阅读全文
摘要:
什么是脚手架? Yeoman是什么? 实现自定义脚手架 基于Yeoman实现Vue-cli 一、什么是脚手架? 手脚架从功能上来讲就是创建项目初始文件,这其中包括生成功能模块配置、自动安装依赖、自动生成标准化(结构的)文件,提高项目创建速度降低手动操作可能发生的低级错误。 关于手脚架在周俊鹏的《前端 阅读全文
摘要:
观察者模式的思想就是对象的客户端保持实时的监听状态,当客户端监听到对象某个行为时触发相应的任务程序。 //服务的对象 let obj = { event:"aaa", fun:function(){ obj2.monitor(this.event); } } //客户对象 let obj2 = { 阅读全文
摘要:
中介模式就是在对象与对象的客户端中间建立一个中介对象,这个中介对象不负责具体职责,只是将双方的程序消息传递给对方,具体任务依然由对象和对象的客户端完成。简单的模式模拟: //服务的对象 let obj = { data:"aaa", mas:function(){ return true; }, f 阅读全文