Node.js 簡介

Node.js 是一個開源、跨平臺的 JavaScript 執行時環境。它是一個適用於幾乎任何型別專案的流行工具!

Node.js 在瀏覽器之外執行 V8 JavaScript 引擎,該引擎是 Google Chrome 的核心。這使得 Node.js 的效能非常高。

一個 Node.js 應用在單個程序中執行,不會為每個請求建立一個新執行緒。Node.js 在其標準庫中提供了一組非同步 I/O 原語,防止 JavaScript 程式碼阻塞。此外,Node.js 中的庫通常使用非阻塞正規化編寫。因此,在 Node.js 中,阻塞行為是例外而非常規。

當 Node.js 執行 I/O 操作時,比如從網路讀取、訪問資料庫或檔案系統,Node.js 不會阻塞執行緒並浪費 CPU 週期等待,而是在響應返回時恢復操作。

這使得 Node.js 能夠用單個伺服器處理數千個併發連線,而無需引入管理執行緒併發的負擔,後者可能是 bug 的重要來源。

Node.js 有一個獨特的優勢,因為數百萬為瀏覽器編寫 JavaScript 的前端開發者現在能夠編寫伺服器端程式碼和客戶端程式碼,而無需學習一門完全不同的語言。

在 Node.js 中,新的 ECMAScript 標準可以毫無問題地使用,因為您不必等待所有使用者更新他們的瀏覽器——您可以透過更改 Node.js 版本來決定使用哪個 ECMAScript 版本,並且您還可以透過帶標誌執行 Node.js 來啟用特定的實驗性功能。

一個 Node.js 應用示例

最常見的 Node.js "Hello World" 示例是一個 Web 伺服器

const {  } = ('node:http');

const  = '127.0.0.1';
const  = 3000;

const  = ((, ) => {
  . = 200;
  .('Content-Type', 'text/plain');
  .('Hello World');
});

.(, , () => {
  .(`Server running at http://${}:${}/`);
});

要執行此程式碼片段,請將其儲存為 server.js 檔案,並在終端中執行 node server.js。如果您使用程式碼的 mjs 版本,則應將其儲存為 server.mjs 檔案,並在終端中執行 node server.mjs

此程式碼首先引入了 Node.js 的 http 模組

Node.js 有一個出色的標準庫,包括對網路的一流支援。

httpcreateServer() 方法會建立一個新的 HTTP 伺服器並返回它。

伺服器被設定為在指定的埠和主機名上監聽。當伺服器準備好時,回撥函式會被呼叫,在本例中通知我們伺服器正在執行。

每當收到新請求時,就會呼叫 request 事件,提供兩個物件:一個請求(一個 http.IncomingMessage 物件)和一個響應(一個 http.ServerResponse 物件)。

這兩個物件對於處理 HTTP 呼叫至關重要。

第一個提供請求的詳細資訊。在這個簡單的例子中,這沒有被使用,但您可以訪問請求頭和請求資料。

第二個用於向呼叫者返回資料。

在本例中,使用

. = 200;

我們將 statusCode 屬性設定為 200,表示響應成功。

我們設定 Content-Type

res.setHeader('Content-Type', 'text/plain');

然後我們關閉響應,將內容作為引數新增到 end()

res.end('Hello World\n');

如果您還沒有這樣做,請下載 Node.js。

閱讀時間
3 分鐘
作者
貢獻
編輯此頁面
目錄
  1. 一個 Node.js 應用示例