Node.js 筆記 | 基本操作

閱讀時間約 4 分鐘

在前一版文章中,本來想把所有我覺得很好用的 npm 套件都歸納在裡面,但隨著我越用越多、越用越多、越用越多...我決定!把文章撤下來拆開來寫!

好了,所以什麼是 Node.js?坦白來說,你沒有它,在網頁開發上雖然不至於寸步難行,但會不方便很多。

Node.js 是一個 JavaScript 的執行環境,讓 JavaScript 可以跳脫瀏覽器而在電腦上執行,達到構建前、後端的應用。許多有名的網站 / 程式:Netflix, PayPal...等都有利用 Node.js 的服務。

而大家耳熟能詳的 npm 全名是 Node Package Manager,也就是 Node.js 的套件管理工具,所以我們可以透過 npm 使用一大堆很好用的第三方套件。


用 nvm 來管理 Node.js 版本

nvm、npm,一字之差就差到天涯海角。nvm 是 Node Version Manager 的簡稱,看名字就知道它在管理 Node.js 的版本。

Windows 系統的 nvm 可以到這裡找到最新版本的 "nvm-setup.zip"。注意安裝路徑下不能出現中文或空白,不然可能會出錯。

安裝完打開終端機,按照下列步驟做:

// 確定 nvm 是否正確安裝
nvm version

// ​查看nvm上有哪些版本的 Node.js 可以安裝
nvm list available

// 安裝你要的 Node.js 版本
nvm install 14.16.0

// 如果你有其他版本的 Node.js,想用其他版本的,輸入:
​nvm use 14.16.0

// 查看 Node.js 是否正確安裝
node -v​

用 Node.js 執行 JavaScript

現在打開終端機,輸入 "node",恭喜你,在終端機獲得執行 JavaScript 的環境了!如果要離開,輸入 ".exit" 或按兩次 "ctrl + c" 就可以囉!

raw-image

如果是要執行 JavaScript 檔案呢?你可以這樣做:

node index.js

來建立 Node.js 伺服器吧!

現在來嘗試用 Node.js 來建立一個可以與瀏覽器互動的本端伺服器吧!

我們會有六個步驟需要執行:

// 載入 HTTP 模組
const http = require('http')

// 定義和伺服器有關的變數​
const hostname = 'localhost'
const port = 3000

// 設定回應的 HTTP 狀態碼、內容類型,並把回應的訊息傳送給瀏覽器
const server = http.createServer((req, res) => {
    // 設定回應的 HTTP 狀態碼
    res.statusCode = 200
    // 設定回應的內容類型
    res.setHeader('Content-Type', 'text/plain')
    // 把回應傳送給瀏覽器
    res.end('This is my first server created in Node.js')
})

// 啟動並監聽伺服器​
server.listen(port, hostname, () => {
    console.log(`The server is listening on http://${hostname}:${port}`)
})

現在打開終端機,執行你的 JavaScript 檔案,你如果看到這個結果就是成功囉!

raw-image

然後你會發現,每次你更新程式碼,都會需要先 "ctrl + c" 停掉伺服器然後重新進入一次才會畫面更新,聽起來就超麻煩對吧?沒關係,之後我會介紹厲害的 Nodemon 來解決這件事。

而且你也發現,用 Node.js 建立伺服器感覺也挺複雜的齁,Express.js 會告訴你什麼叫做快速建立伺服器!

avatar-img
18會員
37內容數
這個專題用來存放我在學習網頁開發時的心得及知識。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Jeremy Ho的沙龍 的其他內容
這是一篇關於自己學習網頁開發近半年的心情文www
有關 git add, git commit, git push
這是一篇關於自己學習網頁開發近半年的心情文www
有關 git add, git commit, git push
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
一般來說我們如果將程式運行在console上,只要用ctrl + c 之類的強制中斷方式就能讓程式中止,但如果我們想要在程式運行到一半時,偵測到某些例外狀況就離開程式,可以怎麼做呢? nodejs核心模組提供了process.exit()的方法可以讓程式強制中止,但使用了這個功能之後,我們尚未完成的
參考 : https://www.w3school.com.cn/jsref/jsref_replace.ASP 取代字串方式 取代找到的第一個 全取代 str.replace(/原始字詞/g, '新字詞');
教學影音: https://youtu.be/SY5sRC2idk0 ============ 安裝 Node.js 步驟 1. http://nodejs.org/ 下載安裝 npm install connect npm install express npm install morgan
Thumbnail
在第一次建立rails專案時,通常都會遇到不少問題,像我是使用windows系統,所以也經歷了一些麻煩。如果各位第一次建立rails專案就可以看到下圖綠色字體的成功字樣,那真的如天選之人般幸運阿~ 如果你跟我一樣注定要經歷windows系統的苦痛,就請繼續看下去吧QQ
Thumbnail
「VSCode 是世上最棒的 IDE 了吧」這時有人跳出來表示不服,定睛一看原來是那陳年的大哥 Visual Studio,他說道:「用 Windows 做開發的人一定要裝 Visual Studio 這樣專業的 IDE,不要裝其他次等的文字編輯器,才可以有效提升專業度。」
Thumbnail
前陣子公司的專案時常發生記憶體不足的錯誤,套上監測軟體一看,逐漸攀升的使用量,到達上限後使程式崩潰,同事們馬上說出:「這是 Memory leak 啊!」 Memory leak 並不可怕,現代的工具可以讓我們快速找出問題並修正,這篇文章記錄了我們的解決方式,希望有幫助到大家!
Thumbnail
前陣子公司的專案時常發生記憶體不足的錯誤,套上監測軟體一看,逐漸攀升的使用量,到達上限後使程式崩潰,同事們馬上說出:「這是 Memory leak 啊!」 Memory leak 並不可怕,現代的工具可以讓我們快速找出問題並修正,這篇文章記錄了我們的解決方式,希望有幫助到大家!
Thumbnail
最近對爬蟲感到興趣,幾天的研究發現 Puppeteer 這套由 Google 開源、使用無介面操作 Chrome 做自動化測試的 Node.js 函式庫也能用來爬取資料...
Thumbnail
早期的 nodejs 為了具有多線程的能力而引入了 cluster 模組, 但這種創建線程的方式會犧牲共享內存, 且數據通信必須透過 json 來傳輸, 因此具有一定的侷限性及性能問題。 而後發展了worker-threads這個模組之後, 具備共享內存的功能, 使其更輕量。 nodejs 在v1
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
一般來說我們如果將程式運行在console上,只要用ctrl + c 之類的強制中斷方式就能讓程式中止,但如果我們想要在程式運行到一半時,偵測到某些例外狀況就離開程式,可以怎麼做呢? nodejs核心模組提供了process.exit()的方法可以讓程式強制中止,但使用了這個功能之後,我們尚未完成的
參考 : https://www.w3school.com.cn/jsref/jsref_replace.ASP 取代字串方式 取代找到的第一個 全取代 str.replace(/原始字詞/g, '新字詞');
教學影音: https://youtu.be/SY5sRC2idk0 ============ 安裝 Node.js 步驟 1. http://nodejs.org/ 下載安裝 npm install connect npm install express npm install morgan
Thumbnail
在第一次建立rails專案時,通常都會遇到不少問題,像我是使用windows系統,所以也經歷了一些麻煩。如果各位第一次建立rails專案就可以看到下圖綠色字體的成功字樣,那真的如天選之人般幸運阿~ 如果你跟我一樣注定要經歷windows系統的苦痛,就請繼續看下去吧QQ
Thumbnail
「VSCode 是世上最棒的 IDE 了吧」這時有人跳出來表示不服,定睛一看原來是那陳年的大哥 Visual Studio,他說道:「用 Windows 做開發的人一定要裝 Visual Studio 這樣專業的 IDE,不要裝其他次等的文字編輯器,才可以有效提升專業度。」
Thumbnail
前陣子公司的專案時常發生記憶體不足的錯誤,套上監測軟體一看,逐漸攀升的使用量,到達上限後使程式崩潰,同事們馬上說出:「這是 Memory leak 啊!」 Memory leak 並不可怕,現代的工具可以讓我們快速找出問題並修正,這篇文章記錄了我們的解決方式,希望有幫助到大家!
Thumbnail
前陣子公司的專案時常發生記憶體不足的錯誤,套上監測軟體一看,逐漸攀升的使用量,到達上限後使程式崩潰,同事們馬上說出:「這是 Memory leak 啊!」 Memory leak 並不可怕,現代的工具可以讓我們快速找出問題並修正,這篇文章記錄了我們的解決方式,希望有幫助到大家!
Thumbnail
最近對爬蟲感到興趣,幾天的研究發現 Puppeteer 這套由 Google 開源、使用無介面操作 Chrome 做自動化測試的 Node.js 函式庫也能用來爬取資料...
Thumbnail
早期的 nodejs 為了具有多線程的能力而引入了 cluster 模組, 但這種創建線程的方式會犧牲共享內存, 且數據通信必須透過 json 來傳輸, 因此具有一定的侷限性及性能問題。 而後發展了worker-threads這個模組之後, 具備共享內存的功能, 使其更輕量。 nodejs 在v1