
- Node.js 教程
- Node.js - 首頁
- Node.js - 簡介
- Node.js - 環境搭建
- Node.js - 第一個應用
- Node.js - REPL 終端
- Node.js - 命令列選項
- Node.js - 包管理器 (NPM)
- Node.js - 回撥函式概念
- Node.js - 上傳檔案
- Node.js - 傳送郵件
- Node.js - 事件
- Node.js - 事件迴圈
- Node.js - 事件發射器
- Node.js - 偵錯程式
- Node.js - 全域性物件
- Node.js - 控制檯
- Node.js - 程序
- Node.js - 應用擴充套件
- Node.js - 打包
- Node.js - Express 框架
- Node.js - RESTful API
- Node.js - 緩衝區
- Node.js - 流
- Node.js - 檔案系統
- Node.js MySQL
- Node.js - MySQL 快速入門
- Node.js - MySQL 建立資料庫
- Node.js - MySQL 建立表
- Node.js - MySQL 插入資料
- Node.js - MySQL 查詢資料
- Node.js - MySQL 條件查詢
- Node.js - MySQL 排序
- Node.js - MySQL 刪除資料
- Node.js - MySQL 更新資料
- Node.js - MySQL 連線查詢
- Node.js MongoDB
- Node.js - MongoDB 快速入門
- Node.js - MongoDB 建立資料庫
- Node.js - MongoDB 建立集合
- Node.js - MongoDB 插入資料
- Node.js - MongoDB 查詢資料
- Node.js - MongoDB 查詢
- Node.js - MongoDB 排序
- Node.js - MongoDB 刪除資料
- Node.js - MongoDB 更新資料
- Node.js - MongoDB 資料限制
- Node.js - MongoDB 連線查詢
- Node.js 模組
- Node.js - 模組
- Node.js - 內建模組
- Node.js - 實用程式模組
- Node.js - Web 模組
- Node.js 有用資源
- Node.js - 快速指南
- Node.js - 有用資源
- Node.js - 討論
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?
以下是 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 應用程式。