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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通