Node实战篇:Express 中间件-body-parser(五)

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

关注我们

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180327G1A0GA00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券