Node.js是一個創建在Chrome v8 引擎上的javascript運行時環境javascript
異步事件驅動java
node.js使用回調函數的方式來處理阻塞事件,node.js維護一個線程池,當遇到阻塞事件時,就從線程池中取出一個線程來執行阻塞事件,而後執行回調函數,線程歸還線程池。node
非阻塞IOc++
單線程npm
能夠經過 child_process.fork(modulePath, args) API 實現多個線程windows
HTTP 在Node.js中是一等公民,Node.js很是適合Web應用瀏覽器
Google開源的高性能javascript引擎,用做解釋和執行javascript安全
高性能的事件驅動程序庫,對Windows和Unix的一些底層平臺特性進行了封裝服務器
提供了對系統底層訪問的功能網絡
Node.js 提供使用的API
膠水代碼,將c/c++類庫接口暴露給javascript
動態連接對象,用於在Node.js和javascript以及C/C++之間提供接口
Node安裝目錄
npm modules目錄
斷言測試
操做二進制流
動態連接對象,用於在Node.js和javascript以及C/C++之間提供接口
child_process模塊提供了以與popen(3)類似但不徹底相同的方式生成子進程的功能。 該功能主要由child_process.spawn()函數提供
Node.js的單個實例在單個線程中運行。 爲了利用多核系統,用戶有時會想要啓動一個Node.js進程的集羣來處理負載。
Cluster 模塊容許您輕鬆建立全部共享服務器端口的子進程
Node.js配有各類CLI選項。 這些選項會公開內置調試,執行腳本的多種方式以及其餘有用的運行時選項。
控制檯模塊提供了一個簡單的調試控制檯,相似於Web瀏覽器提供的JavaScript控制檯機制
加密模塊提供加密功能,其包括用於OpenSSL的哈希,HMAC,加密,解密,簽名和驗證功能的一組包裝器。
Node.js包括可經過基於TCP協議和內置調試客戶端訪問的進程外調試實用程序。 要使用它,啓動帶有調試參數的Node.js,後跟腳本的路徑進行調試; 將顯示提示,指示調試器成功啓動
使用底層操做系統設施執行名稱解析的功能
模塊將被棄用。一旦替換API已經完成,該模塊將被徹底棄用。
用做錯誤處理
Node.js事件API
文件I/OAPI,由在標準POSIX功能上的簡單包裝器提供
全部模塊都提供這些對象。 這些對象中的一些實際上並不在全局範圍內,而在模塊範圍內
Node.js Http接口,支持不少傳統協議
HTTPS是TLS/SSL上的HTTP協議,在Node.js中單獨使用一個模塊來實現該協議
Node.js的簡單模塊加載系統
異步網絡包裝器,用於實現服務端和客戶端的網絡通訊的功能
OS模塊提供了一些與操做系統相關的方法
提供文件或者路徑處理的方法
提供Node.js的進程處理以及進程信息獲取等API,Process是全局的,不須要使用require()加載
將被廢棄,不建議使用
用於提供格式化和解析URL字符串的API
readline模塊提供了從Readable流讀取數據的接口
repl模塊提供Read-Eval-Print-Loop(REPL)實現,該實現既能夠做爲獨立程序使用,也能夠包含在其餘應用程序中
Stream 模塊用於實現數據流處理的抽象接口,它提供了一個API,能夠輕鬆構建流處理對象
提供API將buffer對象編碼成字符串
定時器
tls模塊提供了構建在OPENSSL上的傳輸層安全協議(TLS)和和安全套接層協議(SSL)
tty模塊提供了tty.ReadStream和tty.WriteStream類
dgram模塊提供UDP數據報套接字的實現
提供URL處理的API
主要提供內部程序使用的基本方法,可是也能夠被外部訪問
v8模塊公開了特定於Node.js二進制內置的V8版本的API
vm模塊提供用於在V8虛擬機上下文中編譯和運行代碼的API
zlib模塊提供使用Gzip和Deflate / Inflate等形式壓縮功能