核心模組
Node.js 是一個 Javascript 引擎(用於 Chrome 的谷歌 V8 引擎,用 C++編寫),允許在瀏覽器外執行 Javascript。雖然有許多庫可用於擴充套件 Node 的功能,但該引擎附帶了一組實現基本功能的核心模組。
Node 目前包含 34 個核心模組:
[ 'assert',
'buffer',
'c/c++_addons',
'child_process',
'cluster',
'console',
'crypto',
'deprecated_apis',
'dns',
'domain',
'Events',
'fs',
'http',
'https',
'module',
'net',
'os',
'path',
'punycode',
'querystring',
'readline',
'repl',
'stream',
'string_decoder',
'timers',
'tls_(ssl)',
'tracing',
'tty',
'dgram',
'url',
'util',
'v8',
'vm',
'zlib' ]
此列表是從 Node 文件 API https://nodejs.org/api/all.html(JSON 檔案: https : //nodejs.org/api/all.json )獲得的。
所有核心模組一目瞭然
斷言
assert
模組提供了一組簡單的斷言測試,可用於測試不變數。
緩衝
在 ECMAScript 2015(ES6)
中引入 TypedArray
之前,JavaScript 語言沒有讀取或操作二進位制資料流的機制。Buffer
類是作為 Node.js API 的一部分引入的,可以在 TCP 流和檔案系統操作等環境中與八位位元組流進行互動。
現在 TypedArray
已 ES6 被新增,所述 Buffer
類實現 Uin t8Array
的方式,是更優化和適合的 Node.js’用例的 API。
C / C++ _外掛
Node.js Addons 是動態連結的共享物件,用 C 或 C++編寫,可以使用 require()
函式載入到 Node.js 中,就像它們是普通的 Node.js 模組一樣。它們主要用於提供 Node.js 中執行的 JavaScript 與 C / C++庫之間的介面。
child_process
child_process
模組提供了以與 popen(3)
類似但不相同的方式生成子程序的能力。
Node.js 的單個例項在單個執行緒中執行。為了利用多核系統,使用者有時會想要啟動一個 Node.js 程序叢集來處理負載。群集模組允許你輕鬆建立所有共享伺服器埠的子程序。
控制檯
console
模組提供了一個簡單的除錯控制檯,類似於 Web 瀏覽器提供的 JavaScript 控制檯機制。
加密
crypto
模組提供加密功能,包括一組用於 OpenSSL 雜湊,HMAC,密碼,解密,簽名和驗證功能的包裝器。
deprecated_apis
當以下情況之一時,Node.js 可以棄用 API:(a)API 的使用被認為是不安全的,(b)已經提供了改進的替代 API,或者(c)在未來的主要版本中預計會對 API 進行重大更改。
DNS
dns
模組包含屬於兩個不同類別的功能:
- 使用基礎作業系統工具執行名稱解析但不一定執行任何網路通訊的函式。此類別僅包含一個功能:
dns.lookup()
。 - 連線到實際 DNS 伺服器以執行名稱解析並始終使用網路執行 DNS 查詢的函式。此類別包含
dns
模組中除dns.lookup()
之外的所有功能。
域
此模組正在等待棄用。替換 API 完成後,將完全棄用此模組。大多數終端使用者應該不會有因使用此模組。絕對必須具有域提供的功能的使用者可能暫時依賴它,但是應該期望將來必須遷移到不同的解決方案。
Node.js 核心 API 的大部分是圍繞一個慣用的非同步事件驅動架構構建的,其中某些型別的物件(稱為發射器)週期性地發出命名事件,導致呼叫 Function 物件(偵聽器)。
FS
檔案 I / O 由標準 POSIX 函式的簡單包裝提供。使用這個模組做 require('fs')
。所有方法都有非同步和同步形式。
Node.js 中的 HTTP 介面旨在支援傳統上難以使用的協議的許多功能。特別是,大的,可能是塊編碼的訊息。介面小心永遠不會緩衝整個請求或響應 - 使用者能夠流式傳輸資料。
HTTPS
HTTPS 是 TLS / SSL 上的 HTTP 協議。在 Node.js 中,這是作為一個單獨的模組實現的。
模
Node.js 有一個簡單的模組載入系統。在 Node.js 中,檔案和模組是一一對應的(每個檔案都被視為一個單獨的模組)。
淨
net
模組為你提供非同步網路包裝器。它包含用於建立伺服器和客戶端(稱為流)的功能。你可以將此模組包含在 require('net');
中。
口
os
模組提供了許多與作業系統相關的實用方法。
路徑
path
模組提供了處理檔案和目錄路徑的實用程式。
Punycode 碼
不推薦使用 Node.js 中繫結的 punycode 模組的版本。
請求引數
querystring
模組提供用於解析和格式化 URL 查詢字串的實用程式。
readline
模組提供了一個介面,用於一次一行地讀取可讀流(例如 process.stdin
)中的資料。
REPL
repl
模組提供 Read-Eval-Print-Loop(REPL)
實現,既可作為獨立程式使用,也可作為其他應用程式使用。
流是一個抽象介面,用於處理 Node.js 中的流資料。stream
模組提供了一個基本 API,可以輕鬆構建實現流介面的物件。
Node.js 提供了許多流物件。例如,對 HTTP 伺服器和 process.stdout
的請求都是流例項。
string_decoder
string_decoder
模組提供了一個 API,用於以保留編碼的多位元組 UTF-8 和 UTF-16 字元的方式將 Buffer
物件解碼為字串。
計時器
timer
模組公開了一個全域性 API,用於排程將來某個時間呼叫的函式。因為計時器函式是全域性變數,所以不需要呼叫 require('timers')
來使用 API。
Node.js 中的計時器函式實現與 Web 瀏覽器提供的計時器 API 類似的 API,但使用圍繞 Node.js 事件迴圈構建的不同內部實現。
tls_(SSL)
tls
模組提供了基於 OpenSSL 構建的傳輸層安全性(TLS)和安全套接字層(SSL)協議的實現。
追蹤
跟蹤事件提供了一種機制來集中由 V8,節點核心和使用者空間程式碼生成的跟蹤資訊。
可以通過在啟動 Node.js 應用程式時傳遞 --trace-events-enabled
標誌來啟用跟蹤。
TTY
tty
模組提供 tty.ReadStream
和 tty.WriteStream
類。在大多數情況下,沒有必要或不可能直接使用該模組。
DGRAM
dgram
模組提供 UDP 資料包套接字的實現。
網址
url
模組提供用於 URL 解析和解析的實用程式。
UTIL
util
模組主要用於支援 Node.js 自己的內部 API 的需求。但是,許多實用程式對應用程式和模組開發人員也很有用。
V8
v8
模組公開了特定於 Node.js 二進位制檔案中內建的 V8 版本的 API。
注意 :API 和實現可能隨時更改。
VM
vm
模組提供用於在 V8 虛擬機器上下文中編譯和執行程式碼的 API。JavaScript 程式碼可以立即編譯和執行,也可以編譯,儲存並稍後執行。
注意 :vm 模組不是安全機制。不要使用它來執行不受信任的程式碼。
zlib
zlib
模組提供使用 Gzip 和 Deflate / Inflate 實現的壓縮功能。