nodejs body-parser 解析post数据

摘要:
bodyParser.json中间件仅解析json,并允许任何Unicode编码请求支持gzip和deflate编码。选项具有以下属性的对象默认为false,true-˃压缩请求将被解压缩,而fale-˃压缩的请求将不会被解压缩。此选项将通过JSON.parse直接传递给其第二个参数。当它是字符串时,可以通过类型is-library直接传递给选项。字符串也可以是扩展名和mime类型。InfratemitypeverifybodyParser.text将请求内容作为字符串处理并返回。DefaultCharset如果未在请求头中设置内容类型,则默认值为utf8inflatetypeverifybodyParser.urlconded。中间件仅解析URL编码的请求体并返回它。它仅支持UTF-8编号的文本和gzipdate压缩。

安装

$ npm install body-parser

API

var bodyPaeser =require('body-parser')

可以通过body-parser 对象创建中间件,当接收到客户端请求时所有的中间件都会给req.body 添加属性,请求体为空,则解析为空{} (或者出现错误)。

bodyParser.json(options)

中间件只会解析 json ,允许请求提任意Unicode编码支持 gzip 和 deflate 编码。

options

一个对象,有以下属性

inflate

默认为false,true->压缩的请求体会被解压,false->压缩的请求提不被解压。

limit

控制请求体最大大小,默认为100kb,当为数字时会转换为bytes,当为字符串时,value值会通过 bytes库 转换为字节大小。

reviver

此选项会通过JSON.parse直接传给其第二个参数。

strict

默认为true,当为true时只接受数组和对象,当为false时会接受任何JSON.parse 能接受的。

type

type 选项用来决定中间件要解析媒体类型。选项可以是一个函数或者是字符串。当为字符串时,可以直接通过type-is 库直接传递给选项,字符串也可以为一个扩展名(例如json)、mime 类型(application/json、/ 、*/json)。当为函数时:默认为application/json。

verify

verify选项,若缺失则为一个函数function(req,res,buf,encoding),buf为一个Buffer。

bodyParse.raw(option)

将请求体内容作为Buffer来处理,并返回。支持gzip deflate 压缩。

inflate

limit

type

verify

bodyParser.text(option)

将请求提内容作为字符串来处理,并返回。支持gzip deflate 压缩。

defaultCharset

若请求头未设置Content-Type则默认为utf8

inflate

type

verify

bodyParser.urlencoded(option)

中间件只解析urlencoded 请求体,并返回,只支持UTF-8编号文本,支持gzip deflate 压缩。

extend

ture->使用queryString库(默认) false->使用qs库。

limit

parameterlimit

指定parameters最长长度,默认1000

type

verify

举例:

 1 const express=require('express');
 2 const bodyParser=require('body-parser');
 3 
 4 var server=express();
 5 server.listen(8080);
 6 
 7 server.use(bodyParser.urlencoded({
 8   extended: false,                 //扩展模式
 9   limit:    2*1024*1024           //限制-2M
10 }));
11 
12 server.use('/', function (req, res){
13   console.log(req.body); //POST
14   //req.query   GET
15  //req.body    POST
16 });

html代码:

<form action="http://localhost:8080" method="post">
      用户:<input type="text" name="user" /><br>
      密码:<input type="password" name="pass" /><br>
<input type="submit" value="提交" >

免责声明:文章转载自《nodejs body-parser 解析post数据》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇树莓派打造音乐播放机hbase rowkey设计,以三个事例讲解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

java大文件(视频)切割上传

我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用。 首先我们需要了解的是上传文件三要素: 1.表单提交方式:post (get方式提交有大小限制,post没有) 2.表单的enctype属性:必须设置为multipart/form-data. 3.表单必须有文件上传项:file,且文件项需要给定n...

HTTP协议中POST、GET、HEAD、PUT等请求方法以及一些常见错误

请求方法是请求一定的Web页面的程序或用于特定的URL。可选用下列几种:GET:请求指定的页面信息,并返回实体主体。HEAD:只请求页面的首部。POST:请求服务器接受所指定的文档作为对所标识的URI的新的从属实体。PUT:从客户端向服务器传送的数据取代指定的文档的内容。DELETE:请求服务器删除指定的页面。OPTIONS:允许客户端查看服务器的性能。T...

μC/OS-III---I笔记8---事件标志

   当任务需要同步时可以使用信号量。A任务给B任务发送消息后B任务才能继续运行。如果需要A任务给任务B传递数据的时候就可以采用消息队列。但对于繁杂任务的同步,比如多个时间发生以后执行一个事件,或者是C任务需要任务A和任务B都完成对应的处理任务后才能执行C任务的处理工作,这是用信号量就是等待多个内核对象,有没有一种更好的办法呢,操作系统的大神就创造出了时间...

原生js实现ajax 发送post请求/原生JS封装Ajax插件(同域、jsonp跨域)

原生js实现ajax发送post请求 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 varpostData = { "name1": "value1", "name2": "value2"}; postData = (functio...

Java web开发——文件的上传和下载

一、 功能性需求与非功能性需求 要求操作便利,一次选择多个文件和文件夹进行上传;支持PC端全平台操作系统,Windows,Linux,Mac 支持文件和文件夹的批量下载,断点续传。刷新页面后继续传输。关闭浏览器后保留进度信息。 支持文件夹批量上传下载,服务器端保留文件夹层级结构,服务器端文件夹层级结构与本地相同。 支持大文件批量上传(20G)和下载,同时需...

Python 中的POST/GET包构建以及随机字符串的生成-乾颐堂

现在,我们来用Python,创建GET包和POST包。 至于有什么用处,大家慢慢体会。 Python 中包含了大量的库,作为一门新兴的语言,Python 对HTTP有足够强大的支持。 现在,我们引入新的库 httplib 以及 urllib 这两个库根据名称,我们可以知道他们是对于HTTP以及URL的操作。 首先我们先要与服务器建立连接。(我们以某微博作...