express.js 是一個網頁應用程式框架
架設網站?
解析請求?
解析 cookie
回應頁面?
根據你的請求叫不同的人(middleware)做事
什麼是 middleware?
middleware 是可以處理 http 請求和 request, response 的函式
有哪些現成的 middleware 可以用?
middlewares
不想記這麼多怎麼辦?
用 express-generator
$ npm i express-generator -g
$ express -e [app name]
回到 middleware
function myMiddleware(req, res, next){ // do something next(); }
http 請求的相關參數和方法
常見的有
name | description |
---|---|
req.body | post 方法所傳遞的資料 |
req.query | get 方法所傳遞的參數 |
req.cookie | 網站儲存的 cookie |
req.params | 從路由設定的參數(":"開頭的)注1 |
req.get() | 取得請求的 http header |
注1
app.get('/user/:id', (req, res, next) => { console.log(req.params.id); }); // http://localhost:3000/user/simba-fs // => "simba-fs"
http 回應相關的方法
常見的有
name | description |
---|---|
res.cookie() | 設定 cookie |
res.clearCookie() | 清除 cookie |
res.download() | 傳送一個檔案給 client 下載 |
res.append() | 加一段內容在將要發送的佇列裡 |
res.end() | 發送佇列中的內容 |
res.send() | 送出一個字串、JSON或物件(就是)什麼都可以放的意思 |
res.render() | 用樣板引擎染一個指定的頁面並送出 |
res.redirect() | 重新導向 |
res.status() | 設定狀態碼 |
這是一個函式,沒有任何參數
執行後會將操作權交給下一個中介軟體
通常配合return next()
來使用
避免後續會有其他的操作
app.use()
router.use()