基于node.js依赖express解析post请求四种数据格式


Posted in Javascript onFebruary 13, 2017

node.js依赖express解析post请求四种数据格式

分别是这四种:

  • www-form-urlencoded
  • form-data
  • application/json
  • text/xml

1、www-form-urlencoded

这是http的post请求默认的数据格式,需要body-parser中间件的支持

服务器端的demo:

var express = require('express');
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({
 extended:true
}));
app.post('/urlencoded', function(req, res){
 console.log(req.body);
 res.send(" post successfully!");
});
app.listen(3000);

可以用postman进行测试,这里就不赘述。

2、form-data

这种方式一般用于数据上传,需要中间件connect-multiparty的支持

服务器端的demo:

var multipart = require('connect-multiparty');
var multipartMiddleware = multipart();
app.post('/formdata',multipartMiddleware, function (req, res) {
console.log(req.body);
res.send("post successfully!");
});

3、application/json

body-parser中间件支持json解析, 添加中间件进行解析即可

app.use(bodyParser.json());

4、text/xml

body-parser默认不支持这种数据格式

解决方法:把请求体参数按照字符串读取出来,然后使用 xml2json 包把字符串解析成json对象,然后对json对象进行操作,方便得多。

注意:我们还是要使用 body-parse 得到字符串,然后再转化.

利用req上定义的事件 data 来获取http请求流, end 事件结束请求流的处理.

利用 xml2json 把上面得到的请求参数流(我们直接转化为字符串)转化为 json 对象.

demo如下:

var express = require('express');
var bodyParser = require('body-parser');
var xml2json=require('xml2json');
var app = express();
app.use(bodyParser.urlencoded({
extended: true
}));
app.post('/xml', function (req, res) {
req.rawBody = '';//添加接收变量
var json={};
req.setEncoding('utf8');
req.on('data', function(chunk) { 
req.rawBody += chunk;
});
req.on('end', function() {
json=xml2json.toJson(req.rawBody);
res.send(JSON.stringify(json));
}); 
});
app.listen(3000);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JAVASCRIPT 对象的创建与使用
Mar 09 Javascript
Jquery Ajax学习实例6 向WebService发出请求,返回DataSet(XML) 异步调用
Mar 18 Javascript
使用javascript实现页面定时跳转总结篇
Sep 21 Javascript
extjs每个组件要设置唯一的ID否则会出错
Jun 15 Javascript
JS获取图片lowsrc属性的方法
Apr 01 Javascript
Angular 输入框实现自定义验证功能
Feb 19 Javascript
JavaScript数组迭代方法
Mar 03 Javascript
JS实现分页浏览横向图片(类轮播)实例代码
Nov 06 Javascript
详解React 在服务端渲染的实现
Nov 16 Javascript
JavaScript正则表达式函数总结(常用)
Feb 22 Javascript
使用异步组件优化Vue应用程序的性能
Apr 28 Javascript
javascript Number 与 Math对象的介绍
Nov 17 Javascript
js中小数向上取整数,向下取整数,四舍五入取整数的实现(必看篇)
Feb 13 #Javascript
Angularjs自定义指令实现三级联动 选择地理位置
Feb 13 #Javascript
基于jQuery代码实现圆形菜单展开收缩效果
Feb 13 #Javascript
JS中setTimeout和setInterval的最大延时值详解
Feb 13 #Javascript
Vue.js实现简单动态数据处理
Feb 13 #Javascript
JavaScript获取select中text值的方法
Feb 13 #Javascript
详谈$.data()的用法和作用
Feb 13 #Javascript
You might like
php中定义网站根目录的常用方法
2010/08/08 PHP
PHP执行zip与rar解压缩方法实现代码
2010/12/05 PHP
Laravel中9个不经常用的小技巧汇总
2019/04/16 PHP
jQuery 通过事件委派一次绑定多种事件,以减少事件冗余
2010/06/30 Javascript
JS小功能(onmouseover实现选择月份)实例代码
2013/11/28 Javascript
JS动态修改图片的URL(src)的方法
2015/04/01 Javascript
Node.js利用console输出日志文件的方法示例
2018/04/27 Javascript
详解mpvue开发小程序小总结
2018/07/25 Javascript
JQuery常用简单动画操作方法回顾与总结
2019/12/07 jQuery
JavaScript实现省份城市的三级联动
2020/02/11 Javascript
微信小程序实现翻牌抽奖动画
2020/09/21 Javascript
基于vuex实现购物车功能
2021/01/10 Vue.js
Python实现把utf-8格式的文件转换成gbk格式的文件
2015/01/22 Python
Python文件操作基本流程代码实例
2017/12/11 Python
利用Python如何批量更新服务器文件
2018/07/29 Python
django session完成状态保持的方法
2018/11/27 Python
深入浅析Python2.x和3.x版本的主要区别
2018/11/30 Python
python批量下载网站马拉松照片的完整步骤
2018/12/05 Python
Django 模型类(models.py)的定义详解
2019/07/19 Python
python实现在内存中读写str和二进制数据代码
2020/04/24 Python
python requests包的request()函数中的参数-params和data的区别介绍
2020/05/05 Python
Python利用myqr库创建自己的二维码
2020/11/24 Python
css3弹性盒模型(Flexbox)详细介绍
2014/10/08 HTML / CSS
HTML5 解决苹果手机不能自动播放音乐问题
2017/12/27 HTML / CSS
JBL美国官方商店:扬声器、耳机等
2019/12/01 全球购物
英国时尚和家居用品零售商:Matalan
2021/02/28 全球购物
大学生军训自我评价分享
2013/11/09 职场文书
保荐人的岗位职责
2013/11/19 职场文书
国贸类专业毕业生的求职信分享
2013/12/08 职场文书
大学生创业感言
2014/01/25 职场文书
党的群众路线对照检查材料(个人)
2014/09/24 职场文书
2016五四青年节活动总结范文
2016/04/06 职场文书
合作意向书范本
2019/04/17 职场文书
python自动统计zabbix系统监控覆盖率的示例代码
2021/04/03 Python
手把手教你用SpringBoot将文件打包成zip存放或导出
2021/06/11 Java/Android
JPA如何使用entityManager执行SQL并指定返回类型
2021/06/15 Java/Android