body-parser是什么?
body-parser是一个HTTP,使用这个模块可以解析JSON、Raw、文本、URL-encoded格式的请求体,Express框架中就是使用这个模块做为请求体解析中间件。
body-parser 与 原生解析对比
Node.js 原生HTTP模块中,是将用户请求数据封装到了用于请求对象req中,该对象是一个,该对象同时也是一个可读流对象。
body-parser模块是一个Express中间件,它使用非常简单且功能强大,接下来进入干货阶段.
第二部分 body-parser
2.1 下载配置
2.2 基本使用
2.3 API
对请求体的四种解析方式:
2.3.1 bodyParser 解析json数据
bodyParser变量是对中间件的引用。请求体解析后,解析值都会被放到req.body属性,内容为空时是一个{}空对象。
2.3.2 bodyParser.json(options) :返回一个仅解析json格式数据的中间件。
option可选对象:
2.3.3 bodyParser.raw(options)
返回一个将所有数据做为处理的中间件.其后的所有的req.body中将会是一个Buffer值。
option可选值:
2.3.4 bodyParser.text(options) 解析文本格式
返回一个仅处理字符串格式处理的中间件。其后的所有的req.body中将会是一个字符串值。
2.3. 5 bodyParser.urlencoded(options) 解析UTF-8的编码的数据。
返回一个处理urlencoded数据的中间件。
option可选值
代码示例:
第三部分 POST相关内容
HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的。规范把 HTTP 请求分为三个部分:、、。HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 这几种。
协议规定 POST 提交的数据必须放在消息主体(entity-body)中,但协议并没有规定数据必须使用什么编码方式。
POST 提交数据时,包含了 和两部分。因为服务器端通常会依据来决定使用何种方式解析主体部分.
四种方式:
其中application/x-www-form-urlencoded编码其实是基于uri的percent-encoding编码的,所以采用application/x-www-form-urlencoded的POST数据和queryString只是形式不同,本质都是传递参数。
参考
github====body-parser
关于application/x-www-form-urlencoded编码
四种常见的 POST 提交数据方式
stackoverflow
关注我们
领取专属 10元无门槛券
私享最新 技术干货