摘要:
进程,你可以把它理解成一个正在运行的程序。node.js中每个应用程序都是进程类的实例对象。 node.js中有一个 process 全局对象,通过它我们可以获取,运行该程序的用户,环境变量等信息。 一、process 对象 通过 memoryUsage() 查看内存使用量: rss 表示进程占用的 阅读全文
摘要:
代理,也称网络代理,是一种特殊网络服务,允许一个终端通过代理服务与另一个终端进行非直接的连接,这样利于安全和防止被攻击。 代理服务器,就是代理网络用户去获取网络信息,就是信息的中转,负责转发。 代理又分 正向代理 和 反向代理: 正向代理:帮助局域网内的用户访问外面的服务。 反向代理:帮助外面的用户 阅读全文
摘要:
一、缓存的作用 1、减少了数据传输,节约流量。 2、减少服务器压力,提高服务器性能。 3、加快客户端加载页面的速度。 二、缓存的分类 1、强制缓存,如果缓存有效,则不需要与服务器发生交互,直接使用缓存。 2、对比缓存,每次都需要与服务器发生交互,对缓存进行比较判断是否可以使用缓存。 三、通过使用 L 阅读全文
摘要:
yargs库能够方便的处理命令行参数。 一、安装 yargs 二、读取命令行参数 argv 对象用来保存命令行参数,传递参数时,参数名以 -- 开头,中间使用 = 或 空格,然后接上值 。 argv 有一个 下划线 属性,该属性用来获取非连词线开头的参数 还可以给参数名取一个别名。 .demandO 阅读全文
摘要:
我们可以使用 zlib 模块来对数据进行压缩和解压处理,减小数据体积,加快传输速度。 一、通过创建转换流,对文件进行压缩和解压 zlib.createDeflate() 和 zlib.createInflate() 的使用方法与上面类似,这里就不作演示了。 二、调用 zlib 方法对数据进行压缩与解 阅读全文
摘要:
node.js中的 http 模块提供了创建服务器和客户端的方法,http 全称是超文本传输协议,基于 tcp 之上,属于应用层协议。 一、创建http服务器 请求对象 req 里保存了客户端的详细信息,包括 url,请求参数等,为了方便的解析这些参数,我们可以使用 url.parse() 方法。 阅读全文
摘要:
node.js中 dgram 模块提供了udp数据包的socket实现,可以方便的创建udp服务器和客户端。 一、创建UDP服务器和客户端 服务端: 客户端: udp中服务器与客户端并没有严格的划分,既可以作为服务器接收数据处理数据,也可以像客户端一样请求数据,彼此之间相对独立。 二、通过UDP服务 阅读全文
摘要:
node.js中net模块为我们提供了TCP服务器和客户端通信的各种接口。 一、创建服务器并监听端口 windows下可以通过telnet 或 xshell,putty等工具连接上该服务,进行交互。 我们可以通过 getConnections() 实时获取当前服务器的连接数。 我们可以手动的设置服务 阅读全文
摘要:
有些时候我们需要自定义一些流,来操作特殊对象,node.js中为我们提供了一些基本流类。 我们新创建的流类需要继承四个基本流类之一(stream.Writeable,stream.Readable,stream.Duplex,stream.Transform),并确保调用了父类构造函数。 一、实现自 阅读全文
摘要:
node.js中的流 stream 是处理流式数据的抽象接口。node.js 提供了很多流对象,像http中的request和response,和 process.stdout 都是流的实例。 流可以是 可读的,可写的,或是可读可写的。所有流都是 events 的实例。 一、流的类型 node.js 阅读全文
摘要:
path模块是node.js中处理路径的核心模块。可以很方便的处理关于文件路径的问题。 join() 将多个参数值合并成一个路径 basename() 获取路径中的文件名 extname() 获取路径中的扩展名 sep 返回操作系统指定的路径分割符 delimiter 返回操作系统环境变量的分割符 阅读全文
摘要:
node.js中为我们提供了fs文件系统模块,实现对文件或目录的创建,修改和删除等操作。 fs模块中,所有的方法分为同步和异步两种实现。 有 sync 后缀的方法为同步方法,没有 sync 后缀的方法为异步方法。 一、文件的整个读取 或同步读取: 二、往文件写入数据 注意,writeFile() 默 阅读全文
摘要:
一、什么是Buffer Buffer缓冲器是用来存储输入和输出数据的一段内存。js语言没有二进制数据类型,在处理TCP和文件流的时候,就不是很方便了。 所以node.js提供了Buffer类来处理二进制数据,Buffer类是一个全局变量,Buffer在创建的时候大小就固定了,无法改变。 Buffer 阅读全文
摘要:
现在安装node.js,默认就会帮我们装上了npm包管理工具,npm主要用来下载,安装,管理第三方模块。 创建一个包描述文件: 查看包的信息 查看包的版本信息 安装指定的包: 默认会安装在当前目录下的 node_modules 目录下,如果 node_modules 不存在,则会自动创建。 本地安装 阅读全文
摘要:
node.js中使用CommonJS规范实现模块功能,一个单独的文件就是一个单独的模块。通过require方法实现模块间的依赖管理。 通过require加载模块,是同步操作。 加载流程如下: 1、找到需要加载的模块文件。 2、判断是否缓存过,如果没有,则读取模块文件的内容。 3、把读取到的内容,封装 阅读全文
摘要:
node.js是基于事件驱动的,通过events,我们可以方便的创建事件,并通过触发事件来调用我们自定义的监听函数。 所有能触发事件的对象都应该是 EventEmitter 类的实例,一般我们自定义一个类继承于 EventEmitter 类。 通过on()方法我们可以绑定事件与监听函数: emit( 阅读全文
摘要:
javascript是单线程的,所以任务的执行都需要排队,任务分为两种,一种是同步任务,一种是异步任务。 同步任务是进入主线程上排队执行的任务,上一个任务执行完了,下一个任务才会执行。 异步任务是不进入主线程,而是进入一个 "任务队列" 里,"任务队列" 通知主线程,该异步任务才会进入主线程执行。 阅读全文
摘要:
我们都知道javascript是单线程的,node.js是一个基于Chrome V8 引擎的 javascript 运行时环境,注意 node.js 不是一门语言,别搞错了。 javascript为什么是单线程的,这么做有什么好处? 因为历史原因,js的出现主要是为了解决页面的交互和操作DOM,如果 阅读全文
摘要:
在javascript中,代码是单线程执行的,对于一些比较耗时的IO操作,都是通过异步回调函数来实现的。 但是这样会存在一个问题,当下一个的操作需要上一个操作的结果时,我们只能把代码嵌到上一个操作的回调函数里,这样一层嵌一层,最终形成回调地狱。 为了解决这种问题,ES6中就提供了Promise方法来 阅读全文
摘要:
javascript中一切皆对象,但是由于没有Class类的概念,所以就无法很好的表达对象与对象之间的关系了。 比如对象A与对象B之间,它们两个是相对独立的个体,互不干扰,对象A修改自身的属性不会影响到对象B。 虽然这很好,但是有一个问题,如果对象A与对象B都有一个方法 run() ,并且代码也一样 阅读全文