body-parser與querystring與multer的區別

body-parser express中間件node

  body-parser是用來解析http請求體的,是express默認使用的中間件之一。
  (只解析post的普通數據請求,沒法解析post文件請求)express

使用方法:
const bodyParser=require('body-parser');
app.use=(bodyParser.json);//解析爲json格式
app.use=(bodyParser.urlencoded({extended:false}));
//解析表單類提交的數據,也就是請求體中Content-Type: application/x-www-form-urlencoded的數據
//返回的對象是一個鍵值對,當extended爲false,鍵的值爲'String'或'Array',爲true則可爲任何數據類型。json

Content-Type的四種類型:
  application/x-www-form-urlencoded 常見的form提交
  multipart/form-data 文件提交
  application/json 提交json格式的數據
  text/xml 提交xml格式的數據app

querystring node內建對象post

  querystring是node的內建對象之一,用來將字符串解析爲對象,不支持多級嵌套字符串的解析。
使用方法:
querystring.parse("info[name]=henry&info[age]=30&hobby[1]=sport&hobby[2]=coding")
解析結果:{
      'info[name]': 'henry',
      'info[age]': '30',
      'hobby[1]': 'sport',
      'hobby[2]': 'coding'
     }
qs 第三方插件ui

  是querystring的一個庫,支持多級字符串嵌套解析。(最多隻解析5層嵌套)
使用方法:
qs.parse("info[name]=henry&info[age]=30&hobby[1]=sport&hobby[2]=coding")
解析結果:{ info: {
      name: 'henry',
      age: '30'
      },
      hobby: [ 'sport', 'coding' ]
    }url

multer express的上傳文件中間件spa

  body-parser只支持post請求的普通數據解析,multer支持對post請求的文件解析。
使用方法:
1.必須指定表單form類型enctype="multipart/form-data" method="post"
2.const multerObj=multer({dest: './static/upload'});//上傳文件路徑
3.app.use(multerObj.any();)//上傳文件類型任意
4.如果靜態文件,須要經過express.static()方法設置
  app.use('/upload',express.static(path.join(__dirname,'upload')))
//前面的uploads是一個掛載路徑,後面是當前項目的完整絕對路徑插件

相關文章
相關標籤/搜索