後端框架與API 開發(一)

閱讀時間約 8 分鐘

※ Express 專案初始化標準動作:

Node.js 環境建置核對

  1. 安裝node.js, npm(Node.js的套件管理系統):

安裝 Node.js 的方式除了可以直接從 Node.js 的官方網站 https://nodejs.org 下載安裝外,在實務開發上更常使用的是 Node Version Manager (nvm)。

使用 nvm 的好處在於,它讓開發者可以在電腦上同時安裝並切換不同版本的 Node.js。這對於處理多個專案時非常有用,因為不同專案可能需要不同的 Node.js 版本。使用 nvm,你可以方便地切換版本,避免因版本不一致導致的錯誤。而如果不使用 nvm,而是直接從官網下載 Node.js,你將無法輕鬆切換版本,處理不同專案時可能會遇到許多麻煩。nvm 可以減少重複安裝和移除的麻煩,使開發更順利。

  1. 安裝Visual studio code

※ Windows 安裝 nvm

  • nvm 可至 nvm-windows 的 github 下載。點擊「Download Now」後就到了下載頁面。
raw-image
raw-image

在這裡,選擇最新版本的nvm-setup.zip 檔案,下載解壓縮後安裝即可。安裝時,請注意路徑中不能有空白或中文,也就是說,如果安裝在 C:\Users\AC Genie 或 C:\Users\AC精靈 底下,執行時就會出問題。(如果你的電腦名稱中包含空白或中文,預設路徑就會發生問題,請另外新增一個資料夾擺放你所下載的資料)。

安裝完成後,打開終端機。如果原本終端機已經打開了,記得關掉重新開啟。打開後輸入下述指令以確定安裝成功:

nvm version//確認是否安裝nvm
1.1.11

※ 以 nvm 安裝 Node.js

nvm install node //安裝最新的穩定版本的 Node.js

在終端機中輸入 node -v 來檢查看看是不是當前的 Node.js 版本:

node -v //確認是否安裝node.js或版本資訊
v14.16.0

在終端機中輸入 npm -v來檢查看看是不是當前的npm 版本:

npm -v //確認是否安裝npm或版本資訊
6.14.11


※ Windows 安裝程式碼編輯器 (text editor) - Visual Studio Code

raw-image

※ Visual Studio Code – 客製化編輯設定

在這裡我們要開啟設定檔再做四個編輯設定:

  • tab size:按下 TAB 鍵時空兩格。
  • word wrap:程式碼長度超過視窗時,可以自動換行。
  • format on save:按下存檔時,自動校訂程式碼格式。
  • format on paste:貼上程式碼時,自動校訂貼進來的程式碼的格式。

※ Visual Studio Code – 常用安裝相應的套件設定

※ Express 專案步驟筆記清單

  • 在C槽新增空白專案資料夾:
  1. 打開終端機(Terminal),建立一個新資料夾,然後進入這個資料夾中。
 mkdir {資料夾名稱}//建立一個新資料夾
  1. 進入這個資料夾,使用 cd 指令再加上目錄名稱。
cd {資料夾名稱}
  • 安裝 Experss 到專案中:
  1. 設定 package.json。
npm init -y //建立 package.json 檔,用來登記所有的外部套件。
  1. 安裝 Experss:
  • 專案資料夾中多了一個 node_modules 的資料夾,npm 會把所有安裝下來的套件放在這個資料夾中。
  • 資料夾中還多了一支名字與 package.json 相似,名為 package-lock.json 的檔案。這支檔案會詳細記錄每一次我們使用 npm 安裝了什麼。
npm install express // npm i express 都可以
npm install 套件名稱@版本號//下載指定版本@[4.17.1]
  1. 在 Express 專案資料夾中建立一支名為 app.js 的檔案。
raw-image
  1. 設定程式入口為 app.js。

在設定檔裡有一個 main 屬性,這個是指程式的入口檔案,預設叫做 index.js,但我們習慣上會把這支入口檔案命名為 app.js。所以現在手動更改一下:

raw-image
  1. 設定主程式 app.js:
// 載入 express 並建構應用程式伺服器
const express = require('express')
const app = express()

// 設定首頁路由
app.get('/', (req, res) => {
res.send('hello world')
})

// 設定 port 3000
app.listen(3000, () => {
console.log('express app listen on port 3000')
})
  1. 啟動應用程式伺服器:
node app.js
express app listen on port 3000//印出
  1. 用瀏覽器打開網址 localhost:3000/
raw-image
  1. 安裝 nodemon:會自動重啟伺服器,重新整理瀏覽器後,就可以看到修改後的畫面。
npm install -g nodemon //-g表示把 nodemon 這個套件安裝在電腦的全域(global)。
  1. 使用 nodemon來啟動 Express 的專案:
$ nodemon app.js
[nodemon] 3.1.4
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,cjs,json
[nodemon] starting `node app.js`
express app listen on port 3000
  1. 定義開發用腳本:
// 修改 package.json
"scripts": {
"start": "node app.js",
"dev": "nodemon app.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
  • 只要用 npm run 加上腳本,就可以執行內容,例如:
  1. npm run start →取代 node app.js
  2. npm run dev → 取代nodemon app.js
$ npm run dev

> express-app@1.0.0 dev C:\Users\user\express-app
> nodemon app.js

[nodemon] 3.1.4
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,cjs,json
[nodemon] starting `node app.js`
express app listen on port 3000
  1. 設定版本控制:
  2. 初始化 Git,把專案登錄到版本控制系統裡。
$ git init
  1. 設定 .gitignore:
# OS X
.DS_Store*
Icon?
._*

# Windows
Thumbs.db
ehthumbs.db
Desktop.ini

# npm
node_modules
*.log
*.gz
  1. 建立第一筆 commit:
git init //專案初始化
git add .
git commit -m "feat: project init"
    全端網頁開發專業知識分享
    留言0
    查看全部
    發表第一個留言支持創作者!
    ※ 必考題一: Command Line 工程師面試時通常不會著墨太多在此科目上,考題只考涵蓋的基本指令。 ※ 說明:Command Line是使用純文字與電腦溝通的方式,和圖形化介面 GUI是不一樣的。 ※ 常用基本指令: pwd=print the current directory:顯
    描述我所瞭解的 Web 攻擊技術 何謂網路攻擊? 駭客透過各種系統漏洞或惡意程式,搭配許多技術和工具進行攻擊。目標是要在企業或個人電腦網路中損害、取得控制權或存取重要的文件和系統。 例如: XSS(Cross-Site Scripting,跨站腳本攻擊/跨網站指令碼):指網路罪犯透過存在安全
    ※ 效能 What tools would you use to monitor or analyze your performance ? 中文意思:在監控或分析系統性能方面可能會使用哪些工具? ※ 解答: 常見的監控和分析工具,可分成以下6大類: 系統監控工具: 例如,Promethe
    ※ 資料庫與 SQL ※ 題目: 請寫出 SQL 讀取 people table 中所有 gender 是 M 而且 age 大於 18 的資料。 ※ 解答: SELECT * FROM people WHERE gender = 'M' AND a
    ※ 基本操作:SQL 語法,SELECT, WHERE, CREATE, UPDATE, DELETE。 SELECT:從資料庫中或資料表中指定要選擇的欄位中取得資料,稱之為查詢 (query)。 ※ 語法:要由兩部分構成,第一部分是要 "拿什麼" 資料 (若有多項用逗號隔開);第二部分則為
    ※什麼是資料 : 說明: 「資料」(information/data) 是網路應用程式的核心。 使用者分享的照片、電商販賣的產品,或是搜索引擎提供的餐廳評價都是資料。 主要特徵: 生活中任何基本的事實 (fact) 或是值 (value) 都可以被稱為資料。例如:你的名字、你的生日。 因
    ※ 必考題一: Command Line 工程師面試時通常不會著墨太多在此科目上,考題只考涵蓋的基本指令。 ※ 說明:Command Line是使用純文字與電腦溝通的方式,和圖形化介面 GUI是不一樣的。 ※ 常用基本指令: pwd=print the current directory:顯
    描述我所瞭解的 Web 攻擊技術 何謂網路攻擊? 駭客透過各種系統漏洞或惡意程式,搭配許多技術和工具進行攻擊。目標是要在企業或個人電腦網路中損害、取得控制權或存取重要的文件和系統。 例如: XSS(Cross-Site Scripting,跨站腳本攻擊/跨網站指令碼):指網路罪犯透過存在安全
    ※ 效能 What tools would you use to monitor or analyze your performance ? 中文意思:在監控或分析系統性能方面可能會使用哪些工具? ※ 解答: 常見的監控和分析工具,可分成以下6大類: 系統監控工具: 例如,Promethe
    ※ 資料庫與 SQL ※ 題目: 請寫出 SQL 讀取 people table 中所有 gender 是 M 而且 age 大於 18 的資料。 ※ 解答: SELECT * FROM people WHERE gender = 'M' AND a
    ※ 基本操作:SQL 語法,SELECT, WHERE, CREATE, UPDATE, DELETE。 SELECT:從資料庫中或資料表中指定要選擇的欄位中取得資料,稱之為查詢 (query)。 ※ 語法:要由兩部分構成,第一部分是要 "拿什麼" 資料 (若有多項用逗號隔開);第二部分則為
    ※什麼是資料 : 說明: 「資料」(information/data) 是網路應用程式的核心。 使用者分享的照片、電商販賣的產品,或是搜索引擎提供的餐廳評價都是資料。 主要特徵: 生活中任何基本的事實 (fact) 或是值 (value) 都可以被稱為資料。例如:你的名字、你的生日。 因
    你可能也想看
    Google News 追蹤
    Thumbnail
    接下來第二部分我們持續討論美國總統大選如何佈局, 以及選前一週到年底的操作策略建議 分析兩位候選人政策利多/ 利空的板塊和股票
    Thumbnail
    🤔為什麼團長的能力是死亡筆記本? 🤔為什麼像是死亡筆記本呢? 🤨作者巧思-讓妮翁死亡合理的幾個伏筆
    Thumbnail
    The sheet provides various ways to express opinions and to agree or disagree, as well as shows different ways to express cause and effect.
    Thumbnail
    「冰河列車」Glacier Express:全世界最「慢」的快車,起訖點站分別是位於瑞士東南邊的聖莫里茲〈St. Moritz〉和南邊的策馬特〈Zermatt〉,搭完全程需要八個小時,這篇告訴你哪裡拍美景照最好,哪裡買冰河列車限定的紀念品最便宜喔。
    Thumbnail
    義和兩老都70多歲了.還沒去過香港.之前只是過境...嘟嘟囔囔ㄉ想去走走 而106年1月香港快運HK EXPRESS廉價航機推出機票單程298元超級便宜滴.做女兒ㄉ.就手滑了一下. 訂了含稅來回3006元/1張.湊成廉價航機+酒住華大盛品飯店才才6000元的小旅行 整個香港上山.下海.滴滴轉行程.兩
    Thumbnail
    PR 就是永居權(Permanent Residence),也是俗稱的楓葉卡。資料真的不好查,大部分youtube或網頁就是單說明某一種「方法」,今天整理了一下目前查到的資料,希望可對想去加拿大的人有幫助。 Express Entry (EE)是加拿大接納外國移民人才的主要方式之一,加拿大政府幾乎每
    Express and Parcel(CEP) 市場の現状と将来展望に関する包括的な洞察を提供する、車速センサー市場2023年調査報告書がリリースされました。当レポートでは、業界の市場動向、成長促進要因、課題、機会などの詳細な分析に加え、競争環境と市場主要企業の市場シェア分析についても徹底検
    Thumbnail
    「我告訴我自己,當我買滿三十罐的時候,她如果還不回來,這段感情就會過期。」
    Thumbnail
    Be honest to ourselves, is he/she the one?  Am I ready?  If YES and YES, go for it.  Brave to love.  Enjoy every minute you spend together with this t
    Thumbnail
    Be brave, to deliver your regards and appreciation, especially to the person you truly enjoy being with him/her, particularly to the person who has be
    Thumbnail
    應該是台日合作的第一部戲 覺得真的蠻有日劇的風格的 平淡卻深刻的情感 時間軸過得很迅速 配樂也很有FU 而且幾乎都說日文 記錄高鐵的故事 覺得整體還行 對我而言算是有更了解高鐵蓋的時候發生了什麼事 只是覺得支線有點太多 短短的三集塞了太多東西 導致有些東西不太明白出現的意義 而且有的地方剪接有點混亂
    Thumbnail
    接下來第二部分我們持續討論美國總統大選如何佈局, 以及選前一週到年底的操作策略建議 分析兩位候選人政策利多/ 利空的板塊和股票
    Thumbnail
    🤔為什麼團長的能力是死亡筆記本? 🤔為什麼像是死亡筆記本呢? 🤨作者巧思-讓妮翁死亡合理的幾個伏筆
    Thumbnail
    The sheet provides various ways to express opinions and to agree or disagree, as well as shows different ways to express cause and effect.
    Thumbnail
    「冰河列車」Glacier Express:全世界最「慢」的快車,起訖點站分別是位於瑞士東南邊的聖莫里茲〈St. Moritz〉和南邊的策馬特〈Zermatt〉,搭完全程需要八個小時,這篇告訴你哪裡拍美景照最好,哪裡買冰河列車限定的紀念品最便宜喔。
    Thumbnail
    義和兩老都70多歲了.還沒去過香港.之前只是過境...嘟嘟囔囔ㄉ想去走走 而106年1月香港快運HK EXPRESS廉價航機推出機票單程298元超級便宜滴.做女兒ㄉ.就手滑了一下. 訂了含稅來回3006元/1張.湊成廉價航機+酒住華大盛品飯店才才6000元的小旅行 整個香港上山.下海.滴滴轉行程.兩
    Thumbnail
    PR 就是永居權(Permanent Residence),也是俗稱的楓葉卡。資料真的不好查,大部分youtube或網頁就是單說明某一種「方法」,今天整理了一下目前查到的資料,希望可對想去加拿大的人有幫助。 Express Entry (EE)是加拿大接納外國移民人才的主要方式之一,加拿大政府幾乎每
    Express and Parcel(CEP) 市場の現状と将来展望に関する包括的な洞察を提供する、車速センサー市場2023年調査報告書がリリースされました。当レポートでは、業界の市場動向、成長促進要因、課題、機会などの詳細な分析に加え、競争環境と市場主要企業の市場シェア分析についても徹底検
    Thumbnail
    「我告訴我自己,當我買滿三十罐的時候,她如果還不回來,這段感情就會過期。」
    Thumbnail
    Be honest to ourselves, is he/she the one?  Am I ready?  If YES and YES, go for it.  Brave to love.  Enjoy every minute you spend together with this t
    Thumbnail
    Be brave, to deliver your regards and appreciation, especially to the person you truly enjoy being with him/her, particularly to the person who has be
    Thumbnail
    應該是台日合作的第一部戲 覺得真的蠻有日劇的風格的 平淡卻深刻的情感 時間軸過得很迅速 配樂也很有FU 而且幾乎都說日文 記錄高鐵的故事 覺得整體還行 對我而言算是有更了解高鐵蓋的時候發生了什麼事 只是覺得支線有點太多 短短的三集塞了太多東西 導致有些東西不太明白出現的意義 而且有的地方剪接有點混亂