初識Node.js

Node.js簡介

Node 定義

Node.js是一個創建在Chrome v8 引擎上的javascript運行時環境javascript

Node 特色

  • 異步事件驅動java

圖片描述

node.js使用回調函數的方式來處理阻塞事件,node.js維護一個線程池,當遇到阻塞事件時,就從線程池中取出一個線程來執行阻塞事件,而後執行回調函數,線程歸還線程池。node

  • 非阻塞IOc++

  • 單線程npm

  • 能夠經過 child_process.fork(modulePath, args) API 實現多個線程windows

  • HTTP 在Node.js中是一等公民,Node.js很是適合Web應用瀏覽器

Node 架構

圖片描述

V8

Google開源的高性能javascript引擎,用做解釋和執行javascript安全

libuv

高性能的事件驅動程序庫,對Windows和Unix的一些底層平臺特性進行了封裝服務器

C/C++組件庫(c-ares http parser Open SSL Zlib等)

提供了對系統底層訪問的功能網絡

Node.js API

Node.js 提供使用的API

Node.js Bindings

膠水代碼,將c/c++類庫接口暴露給javascript

C/C++ Addons

動態連接對象,用於在Node.js和javascript以及C/C++之間提供接口

windows下Node安裝目錄結構

Node安裝目錄

圖片描述

npm modules目錄

圖片描述

Node API歸納(v6.10.2)

Assertion Testing

斷言測試

Buffer

操做二進制流

C/C++ Addons

動態連接對象,用於在Node.js和javascript以及C/C++之間提供接口

Child Processes

child_process模塊提供了以與popen(3)類似但不徹底相同的方式生成子進程的功能。 該功能主要由child_process.spawn()函數提供

Cluster

Node.js的單個實例在單個線程中運行。 爲了利用多核系統,用戶有時會想要啓動一個Node.js進程的集羣來處理負載。
Cluster 模塊容許您輕鬆建立全部共享服務器端口的子進程

Command Line Options

Node.js配有各類CLI選項。 這些選項會公開內置調試,執行腳本的多種方式以及其餘有用的運行時選項。

Console

控制檯模塊提供了一個簡單的調試控制檯,相似於Web瀏覽器提供的JavaScript控制檯機制

Crypto

加密模塊提供加密功能,其包括用於OpenSSL的哈希,HMAC,加密,解密,簽名和驗證功能的一組包裝器。

Debugger

Node.js包括可經過基於TCP協議和內置調試客戶端訪問的進程外調試實用程序。 要使用它,啓動帶有調試參數的Node.js,後跟腳本的路徑進行調試; 將顯示提示,指示調試器成功啓動

DNS

使用底層操做系統設施執行名稱解析的功能

Domain

模塊將被棄用。一旦替換API已經完成,該模塊將被徹底棄用。

Errors

用做錯誤處理

Events

Node.js事件API

File System

文件I/OAPI,由在標準POSIX功能上的簡單包裝器提供

Globals

全部模塊都提供這些對象。 這些對象中的一些實際上並不在全局範圍內,而在模塊範圍內

HTTP

Node.js Http接口,支持不少傳統協議

HTTPS

HTTPS是TLS/SSL上的HTTP協議,在Node.js中單獨使用一個模塊來實現該協議

Modules

Node.js的簡單模塊加載系統

Net

異步網絡包裝器,用於實現服務端和客戶端的網絡通訊的功能

OS

OS模塊提供了一些與操做系統相關的方法

Path

提供文件或者路徑處理的方法

Process

提供Node.js的進程處理以及進程信息獲取等API,Process是全局的,不須要使用require()加載

Punycode

將被廢棄,不建議使用

Query Strings

用於提供格式化和解析URL字符串的API

Readline

readline模塊提供了從Readable流讀取數據的接口

REPL

repl模塊提供Read-Eval-Print-Loop(REPL)實現,該實現既能夠做爲獨立程序使用,也能夠包含在其餘應用程序中

Stream

Stream 模塊用於實現數據流處理的抽象接口,它提供了一個API,能夠輕鬆構建流處理對象

String Decoder

提供API將buffer對象編碼成字符串

Timers

定時器

TLS/SSL

tls模塊提供了構建在OPENSSL上的傳輸層安全協議(TLS)和和安全套接層協議(SSL)

TTY

tty模塊提供了tty.ReadStream和tty.WriteStream類

UDP/Datagram

dgram模塊提供UDP數據報套接字的實現

URL

提供URL處理的API

Utilities

主要提供內部程序使用的基本方法,可是也能夠被外部訪問

V8

v8模塊公開了特定於Node.js二進制內置的V8版本的API

VM

vm模塊提供用於在V8虛擬機上下文中編譯和運行代碼的API

ZLIB

zlib模塊提供使用Gzip和Deflate / Inflate等形式壓縮功能

相關文章
相關標籤/搜索