基于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 相关文章推荐
找到一点可怜的关于dojo资料,谢谢作者!
Dec 06 Javascript
js整数字符串转换为金额类型数据(示例代码)
Dec 26 Javascript
使用js实现数据格式化
Dec 03 Javascript
浏览器兼容性问题大汇总
Dec 17 Javascript
jquery实现简单的遮罩层
Jan 08 Javascript
基于jQuery ligerUI实现分页样式
Sep 18 Javascript
JS判断是否为JSON对象及是否存在某字段的方法(推荐)
Nov 29 Javascript
利用yarn代替npm管理前端项目模块依赖的方法详解
Sep 04 Javascript
JS实现求字符串中出现最多次数的字符和次数示例
Jul 05 Javascript
微信js-sdk 录音功能的示例代码
Nov 01 Javascript
详解Vue3中对VDOM的改进
Apr 23 Javascript
vue项目使用$router.go(-1)返回时刷新原来的界面操作
Jul 26 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注释实例技巧
2008/10/03 PHP
php 正则表达式小结
2009/08/31 PHP
php全局变量和类配合使用深刻理解
2013/06/05 PHP
php实现利用phpexcel导出数据
2013/08/24 PHP
分享php代码将360浏览器导出的favdb的sqlite数据库文件转换为html
2015/12/09 PHP
PHP编程实现微信企业向用户付款的方法示例
2017/07/26 PHP
JavaScript窗口功能指南之在窗口中书写内容
2006/07/21 Javascript
jQuery EasyUI API 中文文档 - PropertyGrid属性表格
2011/11/18 Javascript
JavaScript将数据转换成整数的方法
2014/01/04 Javascript
jquery实现鼠标滑过小图时显示大图的方法
2015/01/14 Javascript
JQuery自适应窗口大小导航菜单附源码下载
2015/09/01 Javascript
每日十条JavaScript经验技巧(二)
2016/06/23 Javascript
详解nodejs微信公众号开发——2.自动回复
2017/04/10 NodeJs
微信小程序如何获取用户手机号
2018/01/26 Javascript
微信小程序实现省市区三级地址选择
2020/06/21 Javascript
JavaScript实现与使用发布/订阅模式详解
2019/01/19 Javascript
如何使用pm2快速将项目部署到远程服务器
2019/03/12 Javascript
微信小程序实现拍照画布指定区域生成图片
2019/07/18 Javascript
react使用CSS实现react动画功能示例
2020/05/18 Javascript
python中nan与inf转为特定数字方法示例
2017/05/11 Python
Python Flask基础教程示例代码
2018/02/07 Python
python MySQLdb使用教程详解
2018/03/20 Python
PyQt5创建一个新窗口的实例
2019/06/20 Python
np.random.seed() 的使用详解
2020/01/14 Python
html5视频媒体标签video的使用方法及完整参数说明详解
2019/09/27 HTML / CSS
Beauty Expert美国/加拿大:购买奢侈美容产品
2018/12/05 全球购物
入党思想汇报
2014/01/05 职场文书
运动会解说词100字
2014/01/31 职场文书
总裁助理岗位职责
2014/02/17 职场文书
环保专项行动方案
2014/05/12 职场文书
社区爱国卫生月活动总结
2014/06/30 职场文书
流动人口婚育证明范本
2014/09/26 职场文书
维稳承诺书
2015/01/20 职场文书
学雷锋献爱心倡议书
2015/04/27 职场文书
员工手册董事长致辞
2015/07/29 职场文书
公安干警正风肃纪心得体会
2016/01/15 职场文书