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是一个挂载路径,后面是当前项目的完整绝对路径
body-parser与querystring与multer的区别的更多相关文章
- Request.QueryString与Request的区别
Request.Form可以获取表单中提交的内容,对于单选则会自定进行判断获取选中的值. Request.QueryString["id"] 只能读取通过地址栏参数传递过来的名为i ...
- lucene.net 使用过程中的 几个注意事项(含termquery 和QueryParser 的区别)
几个注意事项1.建立索引时 插入的顺序(不设置document和字段的boost) 会影响到 查询结果的默认排序,建议:将最新生成的文章 最后建索引 这样 查询结果首先显示的是 最后插入的数据2.Bo ...
- Lucene教程具体解释
(建立索引)] )中生成的索引文件的存放地址.详细步骤简单介绍例如以下: 1.创建Directory对象,索引目录 2.创建IndexSearch对象,建立查询(參数是Directory对象) 3.创 ...
- Lucene.Net 2.3.1开发介绍 —— 四、搜索(一)
原文:Lucene.Net 2.3.1开发介绍 -- 四.搜索(一) 既然是内容筛选,或者说是搜索引擎,有索引,必然要有搜索.搜索虽然与索引有关,那也只是与索引后的文件有关,和索引的程序是无关的,因此 ...
- Lucene的分析过程
转自:http://www.open-open.com/lib/view/open1348033848724.html Lucene的分析过程 回顾倒排索引的构建 收集待建索引的原文档(Documen ...
- .net学习笔记----HttpRequest类
一.HttpRequest的作用 HttpRequest的作用是令到Asp.net能够读取客户端发送HTTP值.比如表单.URL.Cookie传递过来的参数. 返回字符串的那些值就不说了,那些基本上都 ...
- Lucene查询索引(分页)
分页查询只需传入每页显示记录数和当前页就可以实现分页查询功能 Lucene分页查询是对搜索返回的结果进行分页,而不是对搜索结果的总数量进行分页,因此我们搜索的时候都是返回前n条记录 package c ...
- 第六步:Lucene查询索引(优化一)
package cn.harmel.lucene; import java.io.IOException; import java.nio.file.Paths; import org.apache. ...
- 第六步:Lucene查询索引
package cn.harmel.lucene; import java.io.IOException; import java.nio.file.Paths; import org.apache. ...
随机推荐
- UMP系统架构 RabbitMQ
- jQuery插件编写,
jQuery插件编写 jQuery插件 最近搞jquery插件的编写这里做下笔记 给jquery扩展的方式很多,看的我眼花缭乱 方式1 $.fun=function(){} 方式2 $.fn.fun= ...
- 一.ES6的开发环境搭建
前言: 现在的Chrome浏览器已经支持ES6了,但是有些低版本的浏览器还是不支持ES6的语法,这就需要我们把ES6的语法自动的转变成ES5的语法.Webpack是有自动编译转换能力的,除了Webpa ...
- 2016.8.17上午纪中初中部NOIP普及组比赛
2016.8.17上午纪中初中部NOIP普及组比赛 链接:https://jzoj.net/junior/#contest/home/1335 本来觉得自己能考高分,但只得160分,并列第九.至少又挤 ...
- 【JZOJ3238】【BZOJ3482】超空间旅行
description 在遥远的未来,行星之间的食品运输将依靠单向的贸易路线.每条路径直接连接两个行星,且其运输时间是已知的. 贸易商协会打算利用一项最近发现的新技术--超空间旅行,以增加一些新的航线 ...
- Ubuntu usb设备端口号绑定
1.将串口设备插入USB口,通过lsusb查看端口信息.例如: ID 1a86:7523 表示usb设备的ID(这个ID由芯片制造商设置,可以唯一表示该设备) 1a86 usb_device_desc ...
- 一个Js开发者学习Python的第一天
原文地址:小寒的博客 https://www.dodoblog.cn/blogs/5bf6b8fa0c09883d0f8aad13 作为一个有着足足两年半学习经验和一年半开发经验的js开发者,看着js ...
- 19-11-05-Night
我就是不行. ZJ: 好像是因为郁闷了才咕掉的…… 33 Miemeng 30 00:01:34 40 00:01:46 0 00:01:22 70 00:01:46 不记得当时怎么想的 T1只会暴力 ...
- VS2012 TFS 解决计算机改名无法连接TFS的问题
闲着没事改了下计算机名字,结果造成TFS无法连接. 报错讯息如下: ---------------------------Microsoft Visual Studio-------------- ...
- nginx 解决问题