這篇來介紹 middleware,如果用比較白話的方式來介紹的話,就是類似守門員的概念
通常一個網站,某些頁面可能需要一些權限才能進去,例如: 已登入的狀態才能造訪
而 middleware(中介軟體),就會在使用者進入這些路由前,先進行驗證的動作 ~
簡單寫一個 middleware
先簡單寫一個 middleware
1 | app.use(function(req, res, next) { |
上述就是一個簡單的 middleware 的範例,middleware 通常比較重要的是擺放的位置,哪些路由需要經過驗證的就擺在它前面,相當於守門員擋在前面,而 next();
也很重要,app.use() 內的 function 就算通過了,但是沒有加 next();
守門員也不會放人,那只能有一位守門員嗎?
當然不只,一個路由前面可以有很多的 middleware,就看你想要驗證什麼了
假設想要在進來首頁時,先驗證有沒有登入,就可以這樣寫:
1 | app.use(function(req, res, next) { |
重複利用的 middleware
假設我們登入的 function,會在很多地方都用到,那就可以改成這樣寫:
1 | const login = function(req, res, next) { |
除了上述的方式,也可以把 middleware 的 function 放在 app.get() 中間,如:
1 | // 進到首頁後,會先進行 login 的 function,如果沒有通過,就不會執行後面的 function |
使用 app.use() 放置靜態檔案
如果要放置靜態檔案,例如:照片,這時候該怎麼放置?
1 | // 從 public 資料夾取用靜態資源 |
記得新增 public 資料夾,接著就可以使用靜態檔案了