什麼是 NodeJS?
Node.js 是一種開放原始碼、跨平台的伺服器端 JavaScript 執行階段環境,以 Chrome 的 V8 JavaScript 引擎為建置基礎,最初由 Ryan Dahl 撰寫,並在 2009 年發行。
Node.js 是否可在 Windows 上運作?
是。 Windows 支援兩個不同的環境,用於使用 Node.js 開發應用程式:
您能夠使用 NodeJS 做什麼?
Node.js 主要是用於建置快速且可調整的 Web 應用程式。 它會使用事件驅動、非封鎖的 I/O 模型,使其變得既輕量且有效率。 對於跨分散式裝置執行的資料密集型即時應用程式,這是絕佳的架構。 以下提供數個您可能使用 Node.js 建立的範例。
- 單頁應用程式 (SPA):這些 Web 應用程式會在瀏覽器中運作,您不需在每次用其來取得新資料時重新載入頁面。 部分範例 SPA 包括社交網路應用程式、電子郵件或地圖應用程式、線上文字或繪圖工具等。
- 即時應用程式 (RTA):這些 Web 應用程式可讓使用者在作者發佈資訊時立即接收該資訊,而不要求使用者 (或軟體) 定期檢查來源以取得更新。 部分範例 RTA 包括立即訊息應用程式或聊天室、可在瀏覽器中進行的線上多人遊戲、線上共同作業文件、社群儲存空間、視訊會議應用程式等。
- 資料串流應用程式:這些應用程式 (或服務) 會在資料/內容抵達 (或建立) 時進行傳送,同時保持連線開啟,以視需要繼續下載進一步的資料、內容或元件。 部分範例包括影片和音訊串流應用程式。
- REST API:這些介面可提供資料給其他人的 Web 應用程式以進行互動。 例如,行事曆 API 服務可為其他人的當地活動網站所使用的音樂會場地提供日期和時間。
- 伺服器端轉譯的應用程式 (SSR):這些 Web 應用程式可以在用戶端 (在您的瀏覽器中/前端) 和伺服器 (後端) 上執行,讓頁面能夠動態顯示 (產生 HTML) 任何已知的內容,並快速抓取不知道其可供使用的內容。 這些通常稱為「同構」或「通用」應用程式。 SSR 會利用 SPA 方法,因此不需在每次使用時重新載入。 不過,SSR 提供一些可能或可能對您不重要的優點,例如在 Google 搜尋結果中顯示內容,並在您應用程式的連結在 X 或 Facebook 等社交媒體上共用時提供預覽影像。 可能的缺點是其需要持續執行的 Node.js 伺服器。 就範例而言,支援使用者想要出現在搜尋結果和社交媒體中之活動的社交網路應用程式,可能會因 SSR 而受益,而電子郵件應用程式可能會用來作為 SPA。 您也可以執行伺服器轉譯的無 SPA 應用程式,這類應用程式可能就像 WordPress 部落格一樣。 如您所見,事情可能變得很複雜,而您只需決定重要事項即可。
- 命令列工具:這些可讓您將重複性工作自動化,然後將您的工具散發到龐大的 Node.js 生態系統。 命令列工具的範例之一是 cURL,其適用於用戶端 URL,且可用來從網際網路 URL 下載內容。 cURL 通常可用來安裝 Node.js 之類的項目,或者,在我們的案例中是 Node.js 版本管理員。
- 硬體程式設計:儘管不像 Web 應用程式一樣普遍,但在 IoT 的使用上,Node.js 也越來越普及,例如,從感應器、指標、發送器、馬達或任何可產生大量資料的項目收集資料。 Node.js 可以啟用資料收集、分析該資料、在裝置與伺服器之間來回通訊,並根據分析採取動作。 NPM 包含 80 個以上的套件,適用於 Arduino 控制器、raspberry pi、Intel IoT Edison、各種感應器及藍牙裝置。