express框架

lin_fightin發表於2020-11-01

express框架

安裝express,
最基本的使用
在這裡插入圖片描述
建立伺服器與建立路由的方法與以前不同,但是都差不多
在這裡插入圖片描述

app.use()

app.use()是不管這個get或者Post,只要是地址對山了就執行
在這裡插入圖片描述

最後一個next函式,如果呼叫了,那麼下一個路由匹配相同的就會執行,如圖
在這裡插入圖片描述
在第二個路由中。張三被列印出來了。

接受所有請求,

在這裡插入圖片描述
第一個引數的地址不寫,不管地址是什麼,都會先經過第一個路由。
用處很大,1 網站維護,
在這裡插入圖片描述

不呼叫Next,所以不能往嚇走,
2 攔截判斷是否登入
在這裡插入圖片描述
3 當訪問的頁面不存在時返回404
在這裡插入圖片描述

錯誤處理中介軟體

在這裡插入圖片描述
只能俘獲同步的錯誤,想俘獲非同步的錯誤時。
在這裡插入圖片描述
要把錯誤資訊傳給next()這樣才能俘獲。在這裡插入圖片描述
在這裡插入圖片描述
因為檔案不存在,所以執行了錯誤處理中介軟體。

try catch

在這裡插入圖片描述
只能俘獲非同步函式+同步程式碼。不能俘獲其他型別。
在這裡插入圖片描述

構建模組化路由

在這裡插入圖片描述
home只是第一層,通過home可以進入第二層等等
在這裡插入圖片描述
在這裡插入圖片描述
建立一個home的路由物件。然後建立二級路由物件,再匯出去,讓app.js匯入他再去匹配,匹配成功後就可以通過/home/add訪問home裡面的路由
在這裡插入圖片描述

引數處理

get引數獲取
在這裡插入圖片描述

req.query獲取get引數
在這裡插入圖片描述
在這裡插入圖片描述
req.query返回的是物件
另一種請求引數
在這裡插入圖片描述

在這裡插入圖片描述
在這裡插入圖片描述
這種方式只能用req.params獲取,而上一種用req.query獲取

post引數獲取

post引數的獲取需要用到第三方模組 body-parser
在這裡插入圖片描述
在這裡插入圖片描述
攔截請求判斷是否有引數,有則傳給req.body,false表示用querystring解析,true表示用qs解析。
在這裡插入圖片描述

express框架的靜態資源處理

需匯入serve-static模組
使用:
在這裡插入圖片描述
開放靜態資源,即可通過localhost去訪問了
在這裡插入圖片描述在這裡插入圖片描述

訪問成功
還有一個隱藏問題,瀏覽器訪問靜態資源時,是根據自己的請求地址來訪問的,所以在訪問css,js時可能會出現錯誤,故在art檔案裡,把所有引入靜態資源的href,src等用絕對路徑替代,比如訪問靜態資源下的admin檔案下的123.css
src=/admin/123.css,在最前面加上/,並且路徑寫全

express框架的模板引擎使用

需要引入express-art-template art-template模組,
首先完成三步驟
在這裡插入圖片描述
接下來使用,
在這裡插入圖片描述
res.render()第一個引數則是模板存在位置所要用的檔名,第二個則是傳值。
在這裡插入圖片描述
結果
在這裡插入圖片描述
在這裡插入圖片描述
注意一個app.loacls物件,可以加屬性賦值,然後在模板直接引用
在這裡插入圖片描述
這個建立後,在模板可以直接呼叫,在這裡插入圖片描述
才會出現上圖的
在這裡插入圖片描述

相關文章