tags: Node Node.js JavaScript Backend 創建時間:2024年11月04日
初探 Node.js:認識 Node.js
本篇文章是前端工程師學習後端語言 Node 筆記所整理的文章,會以前端工程師的視角,學習及敘述後端、Node 這門語言。
Node.js 簡介 #
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 的主要差異,後續文章會陸續介紹,可以先記住
- 瀏覽器提供 DOM 等畫面相關的 API
- Node.js 提供 HTTP、Fs 相關的 API
- Node.js 支援 CommonJS(後來也支援 ESModule)、瀏覽器環境支援 ESModule
- 在 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 程式。
參考資料 #
tags: Node Node.js JavaScript Backend 創建時間:2024年11月04日