zoukankan      html  css  js  c++  java
  • body-parser与querystring与multer的区别

    body-parser express中间件

      body-parser是用来解析http请求体的,是express默认使用的中间件之一。
      (只解析post的普通数据请求,无法解析post文件请求)

    使用方法:
    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则可为任何数据类型。

    Content-Type的四种类型:
      application/x-www-form-urlencoded 常见的form提交
      multipart/form-data 文件提交
      application/json 提交json格式的数据
      text/xml 提交xml格式的数据

    querystring node内建对象

      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 第三方插件

      是querystring的一个库,支持多级字符串嵌套解析。(最多只解析5层嵌套)
    使用方法:
    qs.parse("info[name]=henry&info[age]=30&hobby[1]=sport&hobby[2]=coding")
    解析结果:{ info: {
          name: 'henry',
          age: '30'
          },
          hobby: [ 'sport', 'coding' ]
        }

    multer express的上传文件中间件

      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是一个挂载路径,后面是当前项目的完整绝对路径

  • 相关阅读:
    程序员如何制定自己的一份年度计划
    【Spring入门系列】篇3:再探IOC
    【Spring入门系列】篇2:SpringIOC入门
    【Spring入门系列】篇1:Spring简介
    适配器模式
    java编程思想之正则表达式
    代理模式
    建造者模式
    抽象工厂模式
    工厂方法模式
  • 原文地址:https://www.cnblogs.com/surui/p/7550221.html
Copyright © 2011-2022 走看看