tags: Node Node.js JavaScript Backend 創建時間:2024年11月04日

初探 Node.js:認識 Node.js

本篇文章是前端工程師學習後端語言 Node 筆記所整理的文章,會以前端工程師的視角,學習及敘述後端、Node 這門語言。

Node.js 簡介 #

node

JavaScript 作為前端的腳本語言,可以更改畫面以及執行 API 發送,此時的 JavaScript 是透過瀏覽器作為主要的運行環境 runtime,不過 JavaScript 也可以作為後端語言使用,在後端運行時,JavaScript 並非透過瀏覽器執行,而是通過其他 runtime,例如 Node.js,Node.js 備跨平台的特性,可以在 Window、MacOS、Linux 上執行。

Node.js 在 2009 年被 Ryan Dahl 發明,並採用 Google 的 V8 JavaScript 引擎,並支援 ECMAScript 標準。另外 Node.js 比較特別,Node.js 利用 V8 的即時編譯(JIT),無需依賴傳統的虛擬機架構,直接將 JavaScript 編譯成機器碼執行。

關於虛擬機、runtime、編譯、機器碼、V8 是什麼?

  • 什麼是 runtime?

  • 在目標機器上執行程式碼所需的運行環境

  • 什麼是編譯?

  • 編譯器負責將高階語言轉換成中間碼或機器碼,再交由虛擬機或硬體執行

  • 什麼是機器碼?

  • 能讓機器執行的語言,底層語言

  • 什麼是 V8?

  • 負責將 JavaScript 代碼 即時編譯(Just-In-Time, JIT) 成機器碼並直接執行

JavaScript 運作在 Node.js 以及瀏覽器的差異 #

以下將列出 JavaScript 運作在瀏覽器和 Node 的主要差異,後續文章會陸續介紹,可以先記住

  1. 瀏覽器提供 DOM 等畫面相關的 API
  2. Node.js 提供 HTTP、Fs 相關的 API
  3. Node.js 支援 CommonJS(後來也支援 ESModule)、瀏覽器環境支援 ESModule
  4. 在 Event Loop 上的細節不同(後續會介紹)

如何開始使用 Node.js #

了解 Node.js 後,我們可以開始安裝並實際操作,Node 有多種安裝方式,官網都有提供介紹,在此使用 nvm 進行安裝(方便版本控管)。

# installs nvm (Node Version Manager)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash

# download and install Node.js (you may need to restart the terminal)
nvm install 20

# verifies the right Node.js version is in the environment
node -v # should print `v20.18.0`

# verifies the right npm version is in the environment
npm -v # should print `10.8.2`

執行第一個 Node.js 應用程式 Hello-world.js #

touch hello-world.js
vi hello-world.js # 寫 console.log('hello world')
node hello-world.js

結語 #

以上介紹了 Node.js 的基礎概念,包含瀏覽器與 Node.js 兩種運行環境的差異,並說明安裝與執行第一個 Node.js 程式。

參考資料 #

  1. Node.js — Download Node.js®

  2. V8 (JavaScript引擎) - 維基百科,自由的百科全書

  3. Node.js - 維基百科,自由的百科全書


tags: Node Node.js JavaScript Backend 創建時間:2024年11月04日