node.js入门学习-官方文档知识点梳理

node.js入门学习-官方文档知识点梳理

写在前面的话:

官方文档列出了所有的模块和API用法,这里标出了我个人任务初学来说重要的几个,以下对各个模块的用法做了一些小结,主要用于快速了解每个模块是做什么的,具体使用建议大家在学习的时候根据官方文档,自己敲一敲键盘。我自己根据官网一个个写的demo,可以去github上下载,里面有详细的注释,直接打开来看就行了。后续可以自己敲敲看。

node官网: 英文网址中文网址

(官网难啃,但是权威啊!)

我的github地址:https://github.com/Liusq-Cindy/node-introduce

(跟着官网,干了这碗demo吧)

一、assert断言

断言可用于测试不变式,当需要在一个值为FALSE时中断当前操作的话,可以使用断言。【单元测试】必须使用断言。
node提供了一些用于断言测试的函数,比如测试判断值和期待值是否相等,等等
如:assert.equal(actual, expected[, message])
https://www.cnblogs.com/chjb/articles/9088348.html

二、async_hooks(异步钩子)

提供了一些 API 用于跟踪 NodeJs 中的异步资源的生命周期,属于 NodeJs 内置模块,可以直接引用。
之所以会引入 async_hooks 模块,是因为在异步调用中我们很难正确的追踪异步调用的处理逻辑及关系

三、Buffer缓冲器

js是没有二进制数据类型的,但在处理文件流时,必须使用二进制数据,因此node定义了一个buffer类,用来创建一个专门存放二进制数据的缓存区。

四、child_process(子进程)

创建子进程,可以通过管道完成父子进程之间的通讯,且非阻塞方式。

五、cluster集群

单个 Node.js 实例运行在单个线程中。 为了充分利用多核系统,有时需要启用一组 Node.js 进程去处理负载任务。
cluster 模块可以创建共享服务器端口的子进程。

六、console控制台

console 模块提供了一个简单的调试控制台,类似于 Web 浏览器提供的 JavaScript 控制台。
它可以提供普通的console类,还可以设置全局的console实例。

七、crypto(加密)

提供加密功能,可以进行加密解密签名验证等封装

八、debugger调试器

将 debugger; 语句插入到脚本的源代码,将在代码中的该位置启用断点:

九、dgram(数据报)

dgram 模块提供了 UDP 数据包 socket 的实现。
UDP,即用户数据报协议,一种面向无连接的传输层协议,提供不可靠的消息传送服务。UDP协议使用端口号为不同的应用保留其各自的数据传输通道,这一点非常重要。与TCP相比,占用资源更少,传输速度更快。

十、dns(域名服务器)

包括两类函数:1、使用底层操作系统工具执行名称解析但不一定执行任何网络通信的函数。2、连接到实际 DNS 服务器以执行名称解析并始终使用网络执行 DNS 查询的函数

十一、Error(错误)

各种错误处理机制

十二、events(事件触发器)

大多数 Node.js 核心 API 构建于惯用的异步事件驱动架构,其中某些类型的对象(又称触发器,Emitter)会触发命名事件来调用函数(又称监听器,Listener)。

十三、fs文件系统

fs 模块提供了一个 API,用于以模仿标准 POSIX 函数的方式与文件系统进行交互。
所有文件系统都有同步异步的方式

十四、global(全局变量)

所有模块都提供这些对象。但有些变量其实并不是全局

十五、http(HTTP)

要使用 HTTP 服务器和客户端,必须 require(‘http’)。

十六、http2

十七、https

十八、module模块系统

在 Node.js 模块系统中,每个文件都被视为一个独立的模块。
可以把程序和库放到一个单独的目录,然后提供一个单一的入口来指向它。
Node.js 的 require() 函数的语义被设计得足够通用化,可以支持许多合理的目录结构。 包管理器程序(如 dpkg、 rpm 和 npm)可以不用修改就能够从 Node.js 模块构建本地包。

十九、net(网络)

net 模块用于创建基于流的 TCP 或 IPC 的服务器(net.createServer())与客户端(net.createConnection())。

二十、os操作系统

二十一、path — 待完善

path 模块提供用于处理文件路径和目录路径的实用工具。

二十二、process(进程)

process 对象是一个全局变量,它提供有关当前 Node.js 进程的信息并对其进行控制。 作为一个全局变量,它始终可供 Node.js 应用程序使用,无需使用 require()。 它也可以使用 require() 显式地访问:
当进程发生一些变化如退出、发送消息等等,会触发不同的事件,然后可进行相应操作。

二十三、querystring(查询字符串)

querystring 模块提供用于解析和格式化 URL 查询字符串的实用工具。

二十四、readline(逐行读取)

readline 模块提供了一个接口,用于一次一行地读取可读流

二十五、repl(交互式解释器)

repl 模块提供了一种“读取-求值-输出”循环(REPL)的实现,它可作为一个独立的程序或嵌入到其他应用中

二十六、stream(流)

流(stream)是 Node.js 中处理流式数据的抽象接口。 stream 模块用于构建实现了流接口的对象。

二十七、string_decoder(字符串解码器)

string_decoder 模块提供了一个 API,用于以保留编码的多字节 UTF-8 和 UTF-16 字符的方式将 Buffer 对象解码为字符串。

二十八、timer(定时器)

timer 模块暴露了一个全局的 API,用于预定在将来某个时间段调用的函数。 因为定时器函数是全局变量,所以不需要调用 require(‘timers’) 来使用 API。
Node.js 中的定时器函数实现了与 Web 浏览器提供的定时器 API 类似的 API,但是使用了不同的内部实现(基于 Node.js 事件循环构建)。

二十九、tls(安全传输层)

tls 模块是对安全传输层(TLS)及安全套接层(SSL)协议的实现,建立在OpenSSL的基础上。

三十、tty(终端)

检查 process.stdout.isTTY 属性的值是否为 true,是否附加文本终端。

三十一、url(URL)

url 模块用于处理与解析 URL。

三十二、util(实用工具)

util 模块主要用于支持 Node.js 内部 API 的需求。 大部分实用工具也可用于应用程序与模块开发者。

三十三、v8(V8引擎)

v8 模块暴露了特定于内置到 Node.js 二进制文件中的 V8 版本的 API

三十四、vm(虚拟机)

vm 模块提供了在 V8 虚拟机上下文中编译和运行代码的一系列 API。

三十五、worker_threads(工作线程)

三十六、zlib(压缩)

zlib 模块提供通过 Gzip 和 Deflate/Inflate 实现的压缩功能,

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章