• Node.js Video Tutorials

Node.js - 簡介



什麼是 Node.js?

Node.js 是一個基於 Google Chrome 的 JavaScript 引擎 (V8 引擎) 構建的伺服器端執行環境。Node.js 由 Ryan Dahl 於 2009 年開發,最新版本為 v20.9.0。Node.js 是一個跨平臺(可在 Windows、Linux、Unix、macOS 等系統上執行)、開源的、後端 JavaScript 執行環境,可以在 Web 瀏覽器之外執行 JavaScript 程式碼。

Node.js 的官方文件對其定義如下:

Node.js 是一個基於 Chrome 的 JavaScript 執行時環境構建的平臺,用於輕鬆構建快速且可擴充套件的網路應用程式。Node.js 使用事件驅動、非阻塞 I/O 模型,使其輕量且高效,非常適合執行在分散式裝置上的資料密集型即時應用程式。

Node.js 環境是事件驅動的,並提供非阻塞 I/O,從而優化了 Web 應用程式的吞吐量和可擴充套件性。現在由 Linux 基金會的協作專案計劃支援的 OpenJS 基金會負責 Node.js 的分散式開發。

Node.js 的特性

以下是使 Node.js 成為軟體架構師首選的一些重要特性。

  • 非同步和事件驅動 - Node.js 庫的所有 API 都是非同步的,即非阻塞的。這基本上意味著基於 Node.js 的伺服器永遠不會等待 API 返回資料。伺服器在呼叫 API 後會轉到下一個 API,而 Node.js 的事件通知機制幫助伺服器從之前的 API 呼叫中獲取響應。

  • 非常快 - 基於 Google Chrome 的 V8 JavaScript 引擎構建,Node.js 庫的程式碼執行速度非常快。

  • 單執行緒但高度可擴充套件 - Node.js 使用單執行緒模型和事件迴圈。事件機制幫助伺服器以非阻塞方式響應,並使伺服器具有高度可擴充套件性,這與建立有限執行緒來處理請求的傳統伺服器相反。Node.js 使用單執行緒程式,同一個程式可以比 Apache HTTP Server 等傳統伺服器提供服務給更多數量的請求。

  • 無緩衝 - Node.js 應用程式從不緩衝任何資料。這些應用程式只是分塊輸出資料。

  • 許可證 - Node.js 在 MIT 許可證 下發布。

下圖描述了 Node.js 的一些重要部分,我們將在後續章節中詳細討論。

Node.js Concepts

在哪裡使用 Node.js?

以下是 Node.js 證明自己是完美技術合作夥伴的領域。

  • I/O 密集型應用程式

  • 資料流應用程式

  • 資料密集型即時應用程式 (DIRT)

  • 基於 JSON API 的應用程式

  • 單頁應用程式

但是,不建議將 Node.js 用於 CPU 密集型應用程式。

Node.js 主要用於構建網路程式,例如 Web 伺服器。但是,您可以構建不同型別的應用程式,例如命令列應用程式、Web 應用程式、即時聊天應用程式、REST API 等。

有數千個可用的 Node.js 開源庫,其中大部分託管在 npm 網站上,npm 是 JavaScript 程式語言的包管理器。許多 Web 框架可用於加速應用程式的開發。一些流行的框架包括 Express.js、Feathers.js、Koa.js、Sails.js、Meteor 等等。

許多 IDE,例如 Atom、JetBrains WebStorm、NetBeans 和 Visual Studio Code,都支援 Node.js 應用程式的開發。可以使用 Google Cloud Platform 和 AWS Elastic Beanstalk 等雲託管平臺來託管 Node.js 應用程式。

廣告