iT邦幫忙

2022 iThome 鐵人賽

DAY 15
0
Modern Web

MERN Stack + Tailwind CSS - React 小專案實踐計畫系列 第 15

【Day 15】往後端前進 - Node.js & Express.js

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20220930/201525023khyV9W02g.png

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

Node.js 簡單來說就是能執行 JavaScript 的環境,以 V8 (Google Chrome 的 JavaScript 引擎) 為核心,讓我們也能在瀏覽器外以命令字元的方式執行 JavaScript。

而 Express.js 是目前最受歡迎的 Node web 框架,它能幫助我們開發原生 Node 不支援的常見功能,例如:為不同的 HTTP 方法(GETPOSTDELETE等)增加特定的處理、替不同的 URL 路徑提供靜態檔案、使用樣板或動態性的產生 response。

整理檔案架構

首先,先建立兩個資料夾,分別是 client/ 以及 server/ ,然後再將目前專案所有的檔案移到 client/ 資料夾中,這邊是前端的部分,也就是說我們會將後端部分全部放在 server/ 資料夾中
https://ithelp.ithome.com.tw/upload/images/20220930/20152502CtEVcseIqB.png

開始建立環境

首先,在 VS code 的終端機下,切換路徑到專案的 server/ → cd server
https://ithelp.ithome.com.tw/upload/images/20220930/20152502kI9nlfU2CV.png

然後下指令 yarn init ,這邊跳出的一些資訊填寫可以先一直按 Enter 跳過,完成後就會發現在 sever/ 下方出現了新的檔案 package.json
https://ithelp.ithome.com.tw/upload/images/20220930/20152502BIBoUwybxz.png

接著安裝 Express.js

yarn add express

安裝 nodemon (開發階段的好用工具)

yarn add nodemon --save-dev

新增 server/index.js 檔案,並在 package.json 中新增 scripts 欄位,並輸入以下指令:

"scripts": {
  "dev": "nodemon index.js"
},

然後執行 yarn devyarn + 剛剛建立的 dev 指令),這樣就成功在開發階段用 node 執行 index.js 檔案了
https://ithelp.ithome.com.tw/upload/images/20220930/20152502NV33y5J7Lp.png

用 Express 建立 server

const express = require('express');
const app = express();

app.get('/', (req, res) => {
    res.send('Hello, world!');
});

app.listen(8080, () => {
    console.log('Server listening on port 8080');
});

Node.js 預設為 CommonJS 模組指令(module.exports / require),而不是 ES6 模組指令(export / import)

  • 首先引入 express ,並使用它(習慣以 app 命名)
  • app.get() 說明一個回呼函式在(’/’)路徑的 HTTP GET 請求會被觸發,並帶有一個 request (req)和一個 response (res) 物件為參數,然後會呼叫 ressend() 傳回「 Hello, world! 」字串
  • 最後定義 server 要在哪個 port 運行(這邊定義 8080)

https://ithelp.ithome.com.tw/upload/images/20220930/20152502TTKXlcoOvi.png

在瀏覽器中開啟 http://localhost:8080/ ,就能看到回傳的 response → 剛剛寫的「 Hello, world! 」~
https://ithelp.ithome.com.tw/upload/images/20220930/20152502LUz6mE5rSN.png

參考資料:


上一篇
【Day 14】全域狀態變數管理 - Redux Toolkit
下一篇
【Day 16】嘗試撰寫簡單的 API
系列文
MERN Stack + Tailwind CSS - React 小專案實踐計畫30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言