[Nodejs] Expressjs basic
自動讀取靜態資源
app.use(express.static("public"));
建立伺服器
要建立一個伺服器,最基本要給予一個 PORT ,讓人可以透過這個 PORT 來訪問
//app.js
const express = require("express");
const app = express();
const PORT = 8000;
app.listen(port);
PORT 的值也有限制,像是
- 0 - 1023 是所謂的 well-known-ports ,已經分配給特定的大眾服務
- 1024 - 49151 則是 register-ports ,通常用於軟體應用程式使用
建立路由
假設今天網站想新增一個:關於我們頁面,我們為這個頁面取名為: /about
app.get("/about");
動態路由
在路由加入:
來產生動態參數
app.get("/:product",(req,res)=>{})
參數值可以透過 reqeust 物件中取得
app.get("/:product", (req, res) => {
//取得動態參數product
let { product } = req.params;
res.send("string" + product);
});
HTTP 實例有提供多種的方法,最常見的像是 CRUD:get, post, delete, update 等方法,express 可以讓你針對不同類型的請求去設定不同的響應行為。
先知道這邊指的 request , response 分別代表客戶端的請求及伺服器端的回應
app.get("routeName",(request,response)=>{
})
路由處理器(routing handler)
用來定義觸發路由的對應行為,例如:向 https://test/user/andy
發出請求
app.use("/user", (req, res, next) => {
//做一些事情
});
但假設處理器不只一個,例如:一般來說,使用者登入流程假設分別要經過:
- 檢查是否有此人存在
- 密碼是否過期
- 取得驗證碼
這時就可以以陣列的方式來裝多個處理器
app.use("/user", [checkPerson, checkPassword, getID]);
注意:會依照陣列索引值順序來執 行