URL請求頭(Headers)中Content-Type為不同值時, 後端對應獲取請求體參數的不同方式.

前端發送URL請求之後, 請求的相關內容都通過統一格式封裝在URL請求中, 後端程序收到URL請求之後, 都會首先對URL請求的相關內容進行解析, 不同的後端語言和框架對URL的解析不同.

這裡僅以Node中的Express框架為例.

 

1 application/x-www-form-urlencoded

  解析中間件: body-parser

  使用方法: app.use(bodyParser.urlencoded({entended: true}))

  默認值, 所有的請求參數會被解析到req.body中

2 multipart/form-data

  解析中間件: multer[本質上就是一個解析FormData的中間件]

  使用方法: router.post("url", upload.single(), controller.method)

  需自行設置, 經multer中間件解析之後, 文本屬性被解析到req.body中, 文件屬性被解析到req.file(單文件上傳)或req.files(多文件上傳)中, 此時的file或files只包含了對文件的描述信息, 二進制數據已經經過multer中間件被存儲到了自定義的位置了.  只有當存儲方式為MemoryStorage(存儲到內存中)時, file對象才會擁有buffer屬性

3 application/json

4 text/xml

posted @ 2023-07-08 17:20  0龙行者0  阅读(6)  评论(0编辑  收藏  举报