程序员要快速学新知识就得按照CRM /抄/运行/修改/
-
node.js用的是commonjs模块
-
assert 模块提供了断言测试的函数,用于测试不变式。
-
(ES6) 引入
TypedArray
之前,JavaScript 语言没有读取或操作二进制数据流的机制。Buffer
类被引入作为 Node.js API 的一部分,使其可以在 TCP 流或文件系统操作等场景中处理二进制数据流。 -
child_process
模块提供了衍生子进程的功能,它与 popen(3) 类似,但不完全相同。 这个功能主要由child_process.spawn()
函数提供 -
Node.js在单个线程中运行单个实例。 用户(开发者)为了使用现在的多核系统,有时候,用户(开发者)会用一串Node.js进程去处理负载任务。
cluster 模块允许简单容易的创建共享服务器端口的子进程。
- console 模块提供了一个简单的调试控制台,类似于 Web 浏览器提供的 JavaScript 控制台。
- crypto 模块提供了加密功能,包含对 OpenSSL 的哈希、HMAC、加密、解密、签名、以及验证功能的一整套封装。使用 require('crypto') 来访问该模块。
- dgram模块提供了 UDP 数据包 socket 的实现。
-
dns
模块包含两类函数:
//第一类函数,使用底层操作系统工具进行域名解析,且无需进行网络通信。 这类函数只有一个:dns.lookup()
。
// 第二类函数,连接到一个真实的 DNS 服务器进行域名解析,且始终使用网络进行 DNS 查询。 这类函数包含了dns
模块中除dns.lookup()
以外的所有函数。 这些函数使用与dns.lookup()
不同的配置文件(例如/etc/hosts
)。 这类函数适合于那些不想使用底层操作系统工具进行域名解析、而是想使用网络进行 DNS 查询的开发者。
- Node.js 中运行的应用程序一般会遇到以下四类错误:
- 标准的 JavaScript 错误:
-
<EvalError> : 当调用
eval()
失败时抛出。 - <SyntaxError> : 当 JavaScript 语法错误时抛出。
- <RangeError> : 当值不在预期范围内时抛出。
- <ReferenceError> : 当使用未定义的变量时抛出。
- <TypeError> : 当传入错误类型的参数时抛出。
- <URIError> : 当全局的 URI 处理函数被误用时抛出。
-
<EvalError> : 当调用
- 由底层操作系触发的系统错误,例如试图打开一个不存在的文件、试图通过一个已关闭的 socket 发送数据等。
- 由应用程序代码触发的用户自定义的错误。
- 断言错误是错误的一个特殊类别,每当 Node.js 检测到一个不应该发生的异常逻辑时触发。 这类错误通常由
assert
模块引起。所有由 Node.js 引起的 JavaScript 错误与系统错误都继承自或实例化自标准的 JavaScript <Error> 类,且保证至少提供类中的属性。
- 大多数 Node.js 核心 API 都采用惯用的异步事件驱动架构,其中某些类型的对象(触发器)会周期性地触发命名事件来调用函数对象(监听器)。
文件系统
- 文件 I/O 是对标准 POSIX 函数的简单封装。 通过 require('fs') 使用该模块。 所有的方法都有异步和同步的形式。
//异步方法的最后一个参数都是一个回调函数。 传给回调函数的参数取决于具体方法,但回调函数的第一个参数都会保留给异常。 如果操作成功完成,则第一个参数会是 null 或 undefined。
//当使用同步方法时,任何异常都会被立即抛出。 可以使用 try/catch 来处理异常,或让异常向上冒泡。 - 要使用 HTTP 服务器与客户端,需要 require('http')。
- HTTPS 是 HTTP 基于 TLS/SSL 的版本。在 Node.js 中,它被实现为一个独立的模块。
- Node.js 有一个简单的模块加载系统。 在 Node.js 中,文件和模块是一一对应的(每个文件被视为一个独立的模块)。
-
net
模块提供了创建基于流的 TCP 或 IPC 服务器(net.createServer()
)和客户端(net.createConnection()
) 的异步网络 API。 - os 模块提供了一些操作系统相关的实用方法。
- path 模块提供了一些工具函数,用于处理文件与目录的路径。
- process 对象是一个全局变量,它提供当前 Node.js 进程的有关信息,以及控制当前 Node.js 进程。 因为是全局变量,所以无需使用 require()。
- querystring 模块提供了一些实用函数,用于解析与格式化 URL 查询字符串。
- repl 模块提供了一种“读取-求值-输出”循环(REPL)的实现,它可作为一个独立的程序或嵌入到其他应用中。
-
require('readline')
模块提供了一个接口,用于从可读流(如process.stdin
)读取数据,每次读取一行。 - 流(stream)在 Node.js 中是处理流数据的抽象接口(abstract interface)。
stream
模块提供了基础的 API 。使用这些 API 可以很容易地来构建实现流接口的对象。
Node.js 提供了多种流对象。 例如, HTTP 请求 和process.stdout
就都是流的实例。
流可以是可读的、可写的,或是可读写的。所有的流都是EventEmitter
的实例。 - string_decoder 模块提供了一个 API,用于把 Buffer 对象解码成字符串,但会保留编码过的多字节 UTF-8 与 UTF-16 字符。
-
timer
模块暴露了一个全局的 API,用于在某个未来时间段调用调度函数。 因为定时器函数是全局的,所以使用该 API 无需调用require('timers')
。
Node.js 中的计时器函数实现了与 Web 浏览器提供的定时器类似的 API,除了它使用了一个不同的内部实现,它是基于 Node.js 事件循环构建的。
- tls 模块是对安全传输层(TLS)及安全套接层(SSL)协议的实现,建立在OpenSSL的基础上。
- 终端
//tty 模块提供了 tty.ReadStream 类和 tty.WriteStream 类。 - url 模块提供了一些实用函数,用于 URL 处理与解析。
- util 模块主要用于支持 Node.js 内部 API 的需求。 大部分实用工具也可用于应用程序与模块开发者。
-
v8
模块暴露了特定于V8版本内置到 Node.js 二进制文件中的API. - vm 模块提供了一系列 API 用于在 V8 虚拟机环境中编译和运行代码。
- zlib模块提供通过 Gzip 和 Deflate/Inflate 实现的压缩功能
网友评论