nodeJs,Express中間件是什么與常見中間件


中間件的功能和分類

      中間件的本質就是一個函數,在收到請求和返回相應的過程中做一些我們想做的事情。Express文檔中對它的作用是這么描述的:

執行任何代碼。
修改請求和響應對象。
終結請求-響應循環。
調用堆棧中的下一個中間件。

分類

      Express文檔中把他們分為了五類,但是他們的原理相同,只是用法不同:

應用級中間件
路由級中間件
錯誤處理中間件
內置中間件
第三方中間件

下面介紹常用中間件

express.static()

這是一個用來返回靜態文件的自帶中間件,不需要下載
就是一方法,直接往use()里面加
express.static(root, [options]) 第一個參數是靜態文件存儲的目錄

let server = express();//創建server,直接調用函數就行
server.use(express.static('./static/'));
server.listen('8080');

處理之后,前端就可以在root目錄中訪問靜態文件了

body-parser:

用於解析post數據,這玩意er執行后會往req里面塞一個body,body里面就有處理好的數據

//所有的post請求都經過這個中間件
server.post('*',parser.urlencoded({
  extended: false //給個屬性,一般不開
}))
server.post('/reg',(req,res) => {
  console.log(req.body);//在這就可以使用解析好的body數據
})

multer:處理文件上傳 

添加之后,會往req加一個files屬性

 

const multer = require('multer')
let obj = multer({
  dest: '上傳的文件所放的路徑'
})
server.post(obj.any());//添加之后,會往req加一個files屬性

cookie-parser 

用來操作cookie

const cookieParser = require('cookie-parser');//一個方法
server.use(cookieParser());//使用之后可使用req.cookie()方法,req.signedCookies
server.get('/a',(req,res) => {
  console.log(req.cookies);
  res.cookie('a',998);//用於設置cookie
  res.send('over');
})

cookie方法的使用:
res.cookie(鍵,值)
res.cookie(鍵,值,{options})
options: 可選擇添加的配置

  • domain:域名
  • path:路徑,一般給個/
  • maxAge:最大時長
  • httpOnly:true 只有服務器能看到
  • secure: true //只有https能用
  • signed:true //是否簽名

cookie-session: 

express中用於處理session的中間件

const cookieSession = require('cookie-session');
server.use(cookieSession({
  keys:['1sfdsa44','asdfdaf'...]//循環密鑰
  maxAge:多久過期
}))

使用之后可以使用req.session['鍵']獲取或設置session

關於cookie和session的理解:

用戶的cookie -> 服務器的密鑰簽名 -> session_id -> 通過cookie+session_id訪問服務器 -> 使用密鑰校驗cookie和session_id是否匹配

session就像一張身份證,防止有人偽造cookie訪問服務器


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM