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 實現的壓縮功能,

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