NodeJS Http 模块

要开发 HTTP 服务器程序,从头处理 TCP 连接,解析 HTTP 是不现实的。这些工作实际上已经由 Node.js 自带的 http 模块完成了。应用程序并不直接和 HTTP 协议打交道,而是操作 http 模块提供的 requestresponse 对象。

NodeJS Event 事件循环

Node.js 是单进程单线程应用程序,但是通过事件和回调支持并发,所以性能非常高。它的每一个API 都是异步的,并作为一个独立线程运行,使用异步函数调用,并处理并发。基本上所有的事件机制都是用设计模式中观察者模式实现。单线程类似进入一个 while(true) 的事件循环,直到没有事件观察者退出,每个异步事件都生成一个事件观察者,如果有事件发生就调用该回调函数。

NodeJS 加密模块 crypto

crypto 模块提供了通用的加密和哈希算法。用纯 JavaScript 代码实现这些功能不是不可能,但速度会非常慢。 Node.jsC/C++ 实现这些算法后,通过 cypto 这个模块暴露为 JavaScript 接口,这样用起来方便,运行速度也快。

NodeJS Stream

streamNode.js 提供的一个仅在服务区端可用的模块,目的是支持“流”这种数据结构。Stream 是一个抽象接口,Node 中有很多对象实现了这个接口。例如,对 http 服务器发起请求的 request 对象就是一个 Stream,险些之外还有 stdout(标准输出)。

NodeJS Buffer

JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。但在处理像 TCP 流或文件流时,必须使用到二进制数据。因此在 Node.js 中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。

NodeJS Module 模块原理

JavaScript 中实现“模块”这个功能,并不需要语法层面的支持。 Node.js 并不会增加任何 JavaScript 语法。实现“模块”功能的奥妙就在于 JavaScript 是一种函数式编程语言,它支持闭包。如果我们把一段 JavaScript 代码用一个函数包装起来,这段代码的所有“全局”变量就变成了函数内部的局部变量。

NodeJS 基础模块

Node.js 是运行在服务器端的 JavaScript 环境,服务器程序和浏览器程序相比,最大的特点是没有浏览器的安全限制了,而且,服务器程序必须能接收网络请求,读写文件,处理二进制内容,所以, Node.js 内置的常用模块就是为了实现基本的服务器功能。这些模块在浏览器环境中是无法被执行的,因为它们的底层代码是用 C/C++Node.js 运行环境中实现的。