Node.js (它不是庫,也不是框架)
Node.js 是一個基於 Chrome V8 引擎的 JavaScript 運行環境。 Node.js 使用了一個事件驅動、非阻塞式 I/O 的模型。
Node的優點
- RESTful API
- 單線程
Node可以在不新增額外線程的情況下,依然可以對任務進行併發處理 —— Node.js是單線程的。它通過事件循環(event loop)來實現併發操作,對此,我們應該要充分利用這一點 —— 儘可能的避免阻塞操作,取而代之,多使用非阻塞操作。
- 非阻塞IO(異步)
Node採用一系列“非阻塞”庫來支持事件循環的方式。本質上就是爲文件系統、數據庫之類的資源提供接口。向文件系統發送一個請求時,無需等待硬盤(尋址並檢索文件),硬盤準備好的時候非阻塞接口會通知Node。該模型以可擴展的方式簡化了對慢資源的訪問。
- V8虛擬機
- 事件驅動
- 沒有BOM和DOM
- 在node執行環境中,爲JS提供一些服務器級別的操作API
例如文件讀寫,網絡服務,網絡通信
- 輕量高效
- npm是世界上最大的生態系統包
Node.js 環境概述
瀏覽器環境 VS node環境
由於api不同,它們能夠實現的功能不同:
- 瀏覽器api:提供有限的功能,主要用於操作瀏覽器窗口(BOM)和頁面中的元素(DOM)
- node api:提供非常完整的功能,包括但不僅限於:文件處理、進程控制、網絡通信
從使用場景看:
- 瀏覽器中的JS:提高用戶體驗
- node中的js(nodejs):提供web服務
它們的關係:
它們的共同點:都能執行ES標準的語言
Node.js 可以做什麼
- Web服務器後臺
- 命令行工具
Node.js 的安裝
下載地址:https://nodejs.org/zh-cn/
安裝好後,在終端中查看node版本
node -v
安裝node
時,會自動安裝npm
,可在終端中查看npm
版本
npm -v