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 會告訴你什麼叫做快速建立伺服器!

18會員
37內容數
這個專題用來存放我在學習網頁開發時的心得及知識。
留言0
查看全部
發表第一個留言支持創作者!
Jeremy Ho的沙龍 的其他內容
這是一篇關於自己學習網頁開發近半年的心情文www
有關 git add, git commit, git push
這是一篇關於自己學習網頁開發近半年的心情文www
有關 git add, git commit, git push
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
一般來說我們如果將程式運行在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
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
一般來說我們如果將程式運行在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