Node.js 學習筆記(一):為何使用與如何安裝

2023/11/20閱讀時間約 6 分鐘
raw-image

什麼是 Node.js?

Node.js 是一個開源、跨平台的 JavaScript 的執行環境 (run-time environment)。Node.js 可以在瀏覽器外面執行 V8 JavaScript 引擎,換句話說,Node.js 讓 JavaScript 從瀏覽器解放出來,進行更全面的網路應用程式開發。所以多虧了 Node.js,我們能夠用熟悉的 JavaScript 語法來寫 server-side 的程式碼。




Node.js 的優勢

單一語言

開發者只需要會 JavaScript 即可進行前端以及後端開發,不用學習其他諸如 Ruby 或 Python 等後端程式語言。單一語言也能讓團隊的開發體驗更加順暢。


非同步與事件驅動

Node.js 在設計時便把 non-blocking 當作核心架構之一,因此能夠同時處理大規模的 request。也因為這樣的特性,Node.js 非常適合用在 DIRT (data-intensive real-time) 類型的應用程式,比方說交友軟體、串流平台、叫車平台等等。此外,事件驅動的特性,也讓 Node.js 善於執行講求即時性的應用程式。


非同步的概念有點抽象,簡單來說,就是當我們進行一項需要花時間等待完成的任務 (I/O 執行作業、呼叫 API……),非同步會在等待時間執行下方的程式碼,以免整個應用程式凍結在原地空耗。

const fs = require('fs');

// Asynchronous file read
fs.readFile('example.txt', 'utf8', (err, data) => {
if (err) {
console.error(err);
return;
}
console.log(data);
});

console.log('Reading file asynchronously...');


以上面的程式碼舉例,當 readFile 函式開始執行非同步的檔案讀取,Node.js 會於檔案讀取期間繼續執行下面的程式碼,所以 console 馬上就列印出 Reading file asynchronously...。等到檔案讀取完畢,readFile 裡面的 call back function 才會被呼叫。


題外話,如果 call back function 越積越多,很容易形成惡名昭彰的 callback hell,這時候善用 Promiseasync/await 來管理程式碼就非常重要囉。當然 Node.js 支援以上兩種寫法。


執行快速

Node.js 是建立在 Google 為了 Chrome 而研發的 VS JavaScript 引擎,而 V8 引擎會將 JavaScript 程式碼編譯成 machine code,大幅提升了執行速度。


龐大的生態系

Node.js 目前已經擁有 NPM 這個巨大的開源社群,開發人員能到 NPM 套用各種 package,提升開發效率。


跨平台

Node.js 可以在 Windows、macOS、Linux 等作業系統運行,也就是說,開發者能跨平台使用同一組 codebase,彈性十足。




安裝 Node.js

雖然 Node.js 官網提供了下載安裝點,但業界更常採取的作法是透過 NVM (Node Version Manager) 來安裝 Node.js。幹嘛用另一個工具安裝呢?因為 NVM 能讓我們在同一個系統安裝不同版本的 Node.js,並提供方便的指令,讓我們快速切換不同版本的 Node.js


👉 NVM 安裝連結


安裝完畢後,在終端機輸入 nvm -version 如果有跳出版本序號,就代表安裝成功囉。

$ nvm version
1.1.11


現在我們可以用 NVM 來安裝 Node.js 囉。輸入 nvm install <version> 即可安裝特定版本的 Node.js,如果懶得查詢,也可以輸入 node install latest 讓 NVM 安裝當前最新的版本。不過最新版本可能還不是很穩定,因此建議輸入 node install lts 來安裝最新的 LTS (Long Term Support) 版本。


這邊我安裝的最新 LTS 版本為 20.9.0,NVM 也很貼心地要我輸入 nvm use 20.9.0 來正式使用該版本的 Node.js。

$ nvm install lts
Downloading node.js version 20.9.0 (64-bit)...
Extracting node and npm...
Complete
npm v10.1.0 installed successfully.

Installation complete. If you want to use this version, type

nvm use 20.9.0


乖乖輸入 nvm use 之後~

$ nvm use 20.9.0
Now using node v20.9.0 (64-bit)


我們來使用 node-v 這組指令,檢查當前使用的版本。

$ node -v
v20.9.0




Node REPL

許多程式語言都會提供內建的 REPL 環境,方便開發者直接於終端機輸入程式碼,取得立即的回饋。雖然乍看下來用處不大,但下次當我們需要做點小測試時,就不用費力去建立新檔案囉。只要輸入 node 即可進入 REPL。當終端機的 prompt 變成 > 符號,代表成功進入 REPL。

$ node
Welcome to Node.js v20.9.0.
Type ".help" for more information.


在 REPL 裡面,我們可以建立變數、進行四則運算,呼叫函式等等,可以想成把 JavaScript 直接搬來終端機裡面。較為詳細的說明可以參考 How To Use the Node.js REPL如果要在 REPL 執行某個 JavaScript 的 script,在 node 指令後面加上檔案名成就好囉。

$ node file.js
// script will be executed...
16會員
34內容數
Bonjour à tous,我本身是法文系畢業,這邊會刊登純文組學習網頁開發的筆記。如果能鼓勵更多文組夥伴一起學習,那就太開心了~
留言0
查看全部
發表第一個留言支持創作者!